Controls and Interfaces for User Interactions in Virtual Spaces

ABSTRACT

In one embodiment, a method includes receiving an input indicating an intent of a first user to access one or more virtual tools in a rendered virtual space; calculating a score for each of a set of virtual tools, the score being based on a current context, wherein the current context is based on information associated with the rendered virtual space; selecting, from the set of virtual tools, a subset of virtual tools, wherein each virtual tool in the subset of virtual tools has a score greater than a threshold score; and sending, information configured to render the subset of virtual tools on a display device associated with the first user, the subset of virtual tools being rendered in the rendered virtual space.

PRIORITY

This application claims the benefit, under 35 U.S.C. § 119(e), of U.S.Provisional Patent Application No. 62/404,152, filed 4 Oct. 2016, andU.S. Provisional Patent Application No. 62/485,886, filed 14 Apr. 2017,which are incorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to controls and interfaces for userinteractions and experiences in a virtual reality environment.

BACKGROUND

Virtual reality is a computer-generated simulation of an environment(e.g., a 3D environment) that users can interact with in a seeminglyreal or physical way. A virtual reality system, which may be a singledevice or a group of devices, may generate this simulation for displayto a user, for example, on a virtual reality headset or some otherdisplay device. The simulation may include images, sounds, hapticfeedback, and/or other sensations to imitate a real or imaginaryenvironment. As virtual reality becomes more and more prominent, itsrange of useful applications is rapidly broadening. The most commonapplications of virtual reality involve games or other interactivecontent, but other applications such as the viewing of visual mediaitems (e.g., photos, videos) for entertainment or training purposes areclose behind. The feasibility of using virtual reality to simulatereal-life conversations and other user interactions is also beingexplored.

Augmented reality provides a view of the real or physical world withadded computer-generated sensory inputs (e.g., visual, audible). Inother words, computer-generated virtual effects may augment orsupplement the real-world view. For example, a camera on a virtualreality headset may capture a real-world scene (as an image or video)and display a composite of the captured scene with computer-generatedvirtual objects. The virtual objects may be, for example,two-dimensional and/or three-dimensional objects, and may be stationaryor animated.

SUMMARY OF PARTICULAR EMBODIMENTS

Disclosed herein are a variety of different ways of rendering andinteractive with a virtual (or augmented) reality environment. A virtualreality system may render a virtual environment, which may include avirtual space that is rendered for display to one or more users. Theusers may view and interact within this virtual space and the broadervirtual environment through any suitable means. One goal of thedisclosed methods is to provide an intuitive experience for users—onethat gives the users a sense of “presence,” or the feeling that they areactually in the virtual environment. In particular embodiments, thevirtual reality system may provide for a method of interacting with avirtual space by way of a “gaze input,” i.e., an input that isassociated with the gaze of a user in the virtual space. As an exampleand not by way of limitation, a gaze input may be used to control videoor slide-show playback. For example, a user may use a gaze input tocontrol a scrubber element. As another example and not by way oflimitation, gaze input may be used to activate “hit targets,” or regionsassociated with a virtual object or an interactive element (e.g., topick up a virtual object, to browse or navigate through content). Inparticular embodiments, the virtual reality system may render a reticlethat dynamically changes types in response to a predicted user intent(e.g., based on a context of the current virtual space, based oninformation associated with the user, based on the trajectory of thereticle). The different types of reticles may have different functionswithin the virtual space (e.g., approaching a hit target of a photo maychange the reticle into a grab or a zoom reticle, while approaching ahit target at the edge of a page may change the reticle into anext-page-type reticle). Although the disclosure focuses on virtualreality, it contemplates applying the disclosed concepts to augmentedreality.

In particular embodiments, the virtual reality system may render one ormore virtual tools that can be used to interact with the virtual space.These tools may appear in suitable locations at suitable points, andtheir appearance may be contingent on a number of factors (e.g., acurrent context, whether a user has access, information associated witha user, information associated with a current virtual space. As anexample and not by way of limitation, the tools may include means forcommenting/reacting to content (e.g., likes, voice comments, videocomments, or text comments with spatial and/or temporal elements),taking a selfie, customizing user avatars, creating virtual objects,painting or drawing in the virtual space, etc. In particularembodiments, the virtual reality system may render a “virtual room,” andthe virtual room may have an interactive surface. The interactivesurface may be a surface in the virtual room that facilitatesinteractions or the sharing of content among uses in the virtual room.The interactive surface may be dynamically altered based on factors suchas information associated with the user or the other people in room(e.g., affinities of the user or the other people, age or otherdemographic information), the number of people in the room, an virtualtool that the user has picked up (e.g., a ping pong paddle), a currentcontext (e.g., the time of day, a date, a current event), etc.

In particular embodiments, the virtual reality system may provide for amethod of using controllers (e.g., handheld controllers) to interactwith the virtual space. A number of different ways of interactions withcontrollers are disclosed. As an example and not by way of limitation, afirst controller (e.g., held by the right hand) may be used to perform atrigger gesture (e.g., rotating the forearm to display the underside ofthe wrist), upon which a panel of items (e.g., with the items varyingbased on a current context) may be displayed in the virtual space. Inthis example, a second controller (e.g., held by the left hand) may beused to select one or more of the items.

In particular embodiments, the virtual reality system may providevarious methods of initiating and receiving communications within avirtual space. As an example and not by way of limitation, a user mayreceive an incoming video communication on a virtual watch. In thisexample, the receiving user may accept the video communication, whichmay initially project outward from the watch, but may only be visible tothe receiving user. In this example, the receiving user may then makethe video communication visible to others in a virtual room by “pickingup” the video and putting it on an interactive surface. Othercommunications methods (e.g., involving the rendering of avatars,involving text/audio communications) are disclosed herein. In particularembodiments, a user in a virtual environment may “wear” a virtualwristband or watch that, aside from providing notifications of incomingmessages and calls, may provide notifications of new user experiences.

In particular embodiments, part of a virtual space may display itemsoutside of the current virtual environment (e.g., slides, photos, videostreams of other users). As an example and not by way of limitation,this partial display may be presented when a content item that makes upthe virtual space is not a fully spherical content item (e.g., a videofrom a 180-degree camera). Alternatively, it may even be presentedotherwise (e.g., as a transparent overlay over a portion of the virtualspace).

In particular embodiments, a content item may have reactions or commentsassociated with it that have a spatial and/or temporal element. As anexample and not by way of limitation, a video may have a like associatedwith a particular region of a the video at a particular time-point inthe video. Users viewing the content item may be able to see thesereactions or comments and may also be able to submit their own reactionsor comments. In particular embodiments, as a user is viewing a contentitem, the field of view may include “hints” or indications of alreadysubmitted reactions in the periphery (e.g., in the direction of thelocation of the submitted reactions)—this may act to direct the user tointeresting areas in the content (e.g., locations liked by other users).

In particular embodiments, the virtual reality system may render, in avirtual space (e.g., a virtual room), a virtual sign (e.g., in the formof a “jumbotron” or a ticker that may be rotating or scrolling) forpresenting relevant notifications (e.g., identifying a user who justjoined the meeting or started viewing the same video, comments/reactionsas they appear in the video). In particular embodiments, a user may beable to manipulate or otherwise interact with comments, posts,reactions, or other elements by grabbing them with a suitable input(e.g., by way of a gaze input, hand controllers) and placing itsomewhere in the virtual space or throwing it away. The elements maycome out of a virtual sign or may come out of a page that a user isbrowsing (either privately, or collaboratively with others in thevirtual space).

In particular embodiments, the virtual reality system may allow users toget an aerial view of a virtual space. The aerial view may, for example,show a virtual room and the positions of all users in the virtual room.In this example, a user may be able to “move” from one position toanother (e.g., from one seat to another in a virtual meeting room) byselecting an available location.

In particular embodiments, the virtual reality system may allow users toenter, at any time or place in a virtual space, “pause mode,” which mayeffectively pause the experience for the user. This may be in responseto the user performing a “safety gesture” or selecting some interactiveelement (e.g., a pause button on a virtual wristband). In particularembodiments, other avatars and/or content may disappear, get blurry,become faded, etc., which may thereby make the user feel unplugged fromthe experience while in pause mode. In particular embodiments, the usermay be transported to a personal space (e.g., one with a virtual mirrorin which the user can see himself/herself). The user may be able to exitpause mode by performing a gesture (e.g., a handshake gesture, athumbs-up gesture) or selecting some interactive element (e.g., an“unpause” button on a virtual wristband).

In particular embodiments, the virtual reality system may allow users tocustomize their avatars using special virtual tools (e.g., a virtualhair dryer), or simply by selecting and altering/switching out features.Users may view and alter their avatars with the help of a virtual mirrorthat simulates a real mirror within a virtual space. Users mayaccessorize (e.g., adding hats, glasses, etc.) or add filter effects. Inparticular embodiments, to further facilitate avatar customization thevirtual reality system may provide users with “virtual magazines” withstyle templates that can be implemented directly to avatars.

In particular embodiments, the virtual reality system may enable usersto alter and share content items (e.g., photos/videos) in a virtualspace. For example, a user may select a photo and write the word “hello”across the photo. The user may then share the altered photo. Inparticular embodiments, the altering may be done live, with others inthe virtual space watching or collaborating in the process.

The embodiments disclosed herein are only examples, and the scope ofthis disclosure is not limited to them. Particular embodiments mayinclude all, some, or none of the components, elements, features,functions, operations, or steps of the embodiments disclosed above.Embodiments according to the invention are in particular disclosed inthe attached claims directed to a method, a storage medium, a system anda computer program product, wherein any feature mentioned in one claimcategory, e.g. method, can be claimed in another claim category, e.g.system, as well. The dependencies or references back in the attachedclaims are chosen for formal reasons only. However any subject matterresulting from a deliberate reference back to any previous claims (inparticular multiple dependencies) can be claimed as well, so that anycombination of claims and the features thereof are disclosed and can beclaimed regardless of the dependencies chosen in the attached claims.The subject-matter which can be claimed comprises not only thecombinations of features as set out in the attached claims but also anyother combination of features in the claims, wherein each featurementioned in the claims can be combined with any other feature orcombination of other features in the claims. Furthermore, any of theembodiments and features described or depicted herein can be claimed ina separate claim and/or in any combination with any embodiment orfeature described or depicted herein or with any of the features of theattached claims

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example network environment associated with asocial-networking system.

FIG. 2 illustrates an example social graph.

FIGS. 3A-3B illustrate a headset display device of a virtual realitysystem

FIG. 4A illustrates an example menu of media item feeds

FIG. 4B illustrates an example feed with several subfeeds.

FIGS. 5A-5E illustrate an example interface of a slide show of visualmedia items.

FIGS. 6A-6D illustrate an example transition from a current visual mediaitem to a next visual media item in response to a user input.

FIGS. 7A-7C illustrate an example timeline-scrubber element associatedwith a video.

FIG. 8 illustrates an alternative example timeline-scrubber elementassociated with a video.

FIGS. 9A-9D illustrate different example reticles that dynamicallychange based on context.

FIG. 10 and FIGS. 11A-11D illustrate example interfaces for selectingone or more virtual tools.

FIGS. 12A-12E illustrate examples of interfaces of handling differentvirtual tools with different functionalities.

FIGS. 13A-13C illustrate an example of placing a user reaction at alocation of a visual media item.

FIGS. 14A-14B illustrate an example of a visual media item withreactions placed in different locations.

FIG. 15 illustrates an example of an avatar-customization area in avirtual space.

FIGS. 16A-16G illustrate example uses of virtual tools to customize anavatar.

FIGS. 17A-17B illustrate example virtual magazines for customizing anavatar.

FIGS. 18A-18B illustrate an interactive surface that may be used byusers to share content or otherwise share in interactive experiences.

FIG. 19 illustrates an example of a content item that is locked.

FIG. 20 illustrates an example of a content item representation of acontent item that is shown to users for whom the content item is notvisible.

FIG. 21 illustrates an example of a user interacting with a content itemfrom the viewpoint of a user for whom the content item is not visible.

FIGS. 22A-22B illustrate an example interactive surface that is alteredbased on a tool selected by a user.

FIG. 23 illustrates an example of an interactive surface that has beenaltered to become a content-browser surface.

FIG. 24 illustrates an example of an interactive surface that has beenaltered to become a content-player surface.

FIGS. 25A-25B illustrate an example of an interactive surface that isaltered based on the number of users near it.

FIGS. 26A-26C illustrate example methods of interacting with the virtualspace with multiple controllers.

FIG. 27 illustrates an example of a user in a virtual room browsing afriend list.

FIG. 28 illustrates an example of a communication session in a virtualroom including a user who is not using a virtual reality system.

FIGS. 29A-29C illustrate an example of sharing and interacting withimmersive content in a virtual room.

FIGS. 30A-30B illustrate an example of the receipt of an incomingcommunication on a virtual watch.

FIGS. 31A-31B illustrate another example of the receipt of an incomingcommunication on a virtual watch.

FIG. 32 illustrates an example of the receipt of a text communication ona virtual watch.

FIG. 33 illustrates an example of the receipt of a live broadcastcommunication on a virtual watch.

FIGS. 34A-34B illustrate example dock-element interfaces.

FIGS. 35A-35B illustrate example inputs for entering pause mode.

FIG. 35C illustrates an example pause-mode interface.

FIGS. 36A-36C illustrate an example in which an opaque display regioncompletes a 360-degree perspective in a virtual space.

FIGS. 37A-37B illustrate example virtual signs for presentingnotifications in a virtual room.

FIG. 38 illustrates an alternative virtual signs for presentingnotifications in a virtual room.

FIGS. 39A-39C illustrate an example of a user manipulating a commentelement in a virtual space.

FIGS. 40A-40C illustrate an example of a user writing a message on acontent item.

FIG. 41 illustrates an example method for selecting a hit target basedon a gaze input.

FIG. 42 illustrates an example method for determining a reticle type torender.

FIG. 43 illustrates an example method for determining a subset of toolsto present to a user.

FIG. 44 illustrates an example method for determining a type ofinteractive surface to render.

FIG. 45 illustrates an example method for receiving inputs fromcontrollers associated with locations on the body of a user.

FIG. 46 illustrates an example method for initiating a virtual meeting.

FIG. 47 illustrates an example method for receiving notifications on avirtual device.

FIG. 48 illustrates an example method for rendering a unified 360-degreeperspective having two portions.

FIG. 49 illustrates an example method for displaying social-commentaryitems in respective associated locations in a virtual space.

FIG. 50 illustrates an example method for displaying notifications on avirtual sign.

FIG. 51 illustrates an example method for rendering a manipulablevirtual object representing a social-commentary item.

FIG. 52 illustrates an example method for presenting an aerial view of avirtual space and re-positioning a user within the virtual space.

FIG. 53 illustrates an example method for pausing a virtual experience.

FIG. 54 illustrates an example method for customizing a virtualrepresentation of a user.

FIG. 55 illustrates an example method for altering and sharing virtualcontent.

FIG. 56 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

FIG. 1 illustrates an example network environment 100 associated with asocial-networking system. Network environment 100 includes a clientsystem 130, a social-networking system 160, and a third-party system 170connected to each other by a network 110. Although FIG. 1 illustrates aparticular arrangement of client system 130, social-networking system160, third-party system 170, and network 110, this disclosurecontemplates any suitable arrangement of client system 130,social-networking system 160, third-party system 170, and network 110.As an example and not by way of limitation, two or more of client system130, social-networking system 160, and third-party system 170 may beconnected to each other directly, bypassing network 110. As anotherexample, two or more of client system 130, social-networking system 160,and third-party system 170 may be physically or logically co-locatedwith each other in whole or in part. Moreover, although FIG. 1illustrates a particular number of client systems 130, social-networkingsystems 160, third-party systems 170, and networks 110, this disclosurecontemplates any suitable number of client systems 130,social-networking systems 160, third-party systems 170, and networks110. As an example and not by way of limitation, network environment 100may include multiple client system 130, social-networking systems 160,third-party systems 170, and networks 110.

This disclosure contemplates any suitable network 110. As an example andnot by way of limitation, one or more portions of network 110 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 110 may include one or more networks110.

Links 150 may connect client system 130, social-networking system 160,and third-party system 170 to communication network 110 or to eachother. This disclosure contemplates any suitable links 150. Inparticular embodiments, one or more links 150 include one or morewireline (such as for example Digital Subscriber Line (DSL) or Data OverCable Service Interface Specification (DOCSIS)), wireless (such as forexample Wi-Fi or Worldwide Interoperability for Microwave Access(WiMAX)), or optical (such as for example Synchronous Optical Network(SONET) or Synchronous Digital Hierarchy (SDH)) links. In particularembodiments, one or more links 150 each include an ad hoc network, anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, aportion of the Internet, a portion of the PSTN, a cellulartechnology-based network, a satellite communications technology-basednetwork, another link 150, or a combination of two or more such links150. Links 150 need not necessarily be the same throughout networkenvironment 100. One or more first links 150 may differ in one or morerespects from one or more second links 150.

In particular embodiments, client system 130 may be an electronic deviceincluding hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientsystem 130. As an example and not by way of limitation, a client system130 may include a computer system such as a desktop computer, notebookor laptop computer, netbook, a tablet computer, e-book reader, GPSdevice, camera, personal digital assistant (PDA), handheld electronicdevice, cellular telephone, smartphone, augmented/virtual realitydevice, other suitable electronic device, or any suitable combinationthereof. This disclosure contemplates any suitable client systems 130. Aclient system 130 may enable a network user at client system 130 toaccess network 110. A client system 130 may enable its user tocommunicate with other users at other client systems 130.

In particular embodiments, client system 130 may include a web browser132, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLAFIREFOX, and may have one or more add-ons, plug-ins, or otherextensions, such as TOOLBAR or YAHOO TOOLBAR. A user at client system130 may enter a Uniform Resource Locator (URL) or other addressdirecting the web browser 132 to a particular server (such as server162, or a server associated with a third-party system 170), and the webbrowser 132 may generate a Hyper Text Transfer Protocol (HTTP) requestand communicate the HTTP request to server. The server may accept theHTTP request and communicate to client system 130 one or more Hyper TextMarkup Language (HTML) files responsive to the HTTP request. Clientsystem 130 may render a webpage based on the HTML files from the serverfor presentation to the user. This disclosure contemplates any suitablewebpage files. As an example and not by way of limitation, webpages mayrender from HTML files, Extensible Hyper Text Markup Language (XHTML)files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as, forexample and without limitation, those written in JAVASCRIPT, JAVA,MICROSOFT SILVERLIGHT, combinations of markup language and scripts suchas AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein,reference to a webpage encompasses one or more corresponding webpagefiles (which a browser may use to render the webpage) and vice versa,where appropriate.

In particular embodiments, social-networking system 160 may be anetwork-addressable computing system that can host an online socialnetwork. Social-networking system 160 may generate, store, receive, andsend social-networking data, such as, for example, user-profile data,concept-profile data, social-graph information, or other suitable datarelated to the online social network. Social-networking system 160 maybe accessed by the other components of network environment 100 eitherdirectly or via network 110. As an example and not by way of limitation,client system 130 may access social-networking system 160 using a webbrowser 132, or a native application associated with social-networkingsystem 160 (e.g., a mobile social-networking application, a messagingapplication, another suitable application, or any combination thereof)either directly or via network 110. In particular embodiments,social-networking system 160 may include one or more servers 162. Eachserver 162 may be a unitary server or a distributed server spanningmultiple computers or multiple datacenters. Servers 162 may be ofvarious types, such as, for example and without limitation, web server,news server, mail server, message server, advertising server, fileserver, application server, exchange server, database server, proxyserver, another server suitable for performing functions or processesdescribed herein, or any combination thereof. In particular embodiments,each server 162 may include hardware, software, or embedded logiccomponents or a combination of two or more such components for carryingout the appropriate functionalities implemented or supported by server162. In particular embodiments, social-networking system 160 may includeone or more data stores 164. Data stores 164 may be used to storevarious types of information. In particular embodiments, the informationstored in data stores 164 may be organized according to specific datastructures. In particular embodiments, each data store 164 may be arelational, columnar, correlation, or other suitable database. Althoughthis disclosure describes or illustrates particular types of databases,this disclosure contemplates any suitable types of databases. Particularembodiments may provide interfaces that enable a client system 130, asocial-networking system 160, or a third-party system 170 to manage,retrieve, modify, add, or delete, the information stored in data store164.

In particular embodiments, social-networking system 160 may store one ormore social graphs in one or more data stores 164. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. Social-networking system 160 mayprovide users of the online social network the ability to communicateand interact with other users. In particular embodiments, users may jointhe online social network via social-networking system 160 and then addconnections (e.g., relationships) to a number of other users ofsocial-networking system 160 to whom they want to be connected. Herein,the term “friend” may refer to any other user of social-networkingsystem 160 with whom a user has formed a connection, association, orrelationship via social-networking system 160.

In particular embodiments, social-networking system 160 may provideusers with the ability to take actions on various types of items orobjects, supported by social-networking system 160. As an example andnot by way of limitation, the items and objects may include groups orsocial networks to which users of social-networking system 160 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use, transactions that allowusers to buy or sell items via the service, interactions withadvertisements that a user may perform, or other suitable items orobjects. A user may interact with anything that is capable of beingrepresented in social-networking system 160 or by an external system ofthird-party system 170, which is separate from social-networking system160 and coupled to social-networking system 160 via a network 110.

In particular embodiments, social-networking system 160 may be capableof linking a variety of entities. As an example and not by way oflimitation, social-networking system 160 may enable users to interactwith each other as well as receive content from third-party systems 170or other entities, or to allow users to interact with these entitiesthrough an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 170 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 170 may beoperated by a different entity from an entity operatingsocial-networking system 160. In particular embodiments, however,social-networking system 160 and third-party systems 170 may operate inconjunction with each other to provide social-networking services tousers of social-networking system 160 or third-party systems 170. Inthis sense, social-networking system 160 may provide a platform, orbackbone, which other systems, such as third-party systems 170, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 170 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client system 130. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, social-networking system 160 also includesuser-generated content objects, which may enhance a user's interactionswith social-networking system 160. User-generated content may includeanything a user can add, upload, send, or “post” to social-networkingsystem 160. As an example and not by way of limitation, a usercommunicates posts to social-networking system 160 from a client system130. Posts may include data such as status updates or other textualdata, location information, photos, videos, links, music or othersimilar data or media. Content may also be added to social-networkingsystem 160 by a third-party through a “communication channel,” such as anewsfeed or stream.

In particular embodiments, social-networking system 160 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, social-networking system 160 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Social-networking system160 may also include suitable components such as network interfaces,security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments,social-networking system 160 may include one or more user-profile storesfor storing user profiles. A user profile may include, for example,biographic information, demographic information, behavioral information,social information, or other types of descriptive information, such aswork experience, educational history, hobbies or preferences, interests,affinities, or location. Interest information may include interestsrelated to one or more categories. Categories may be general orspecific. As an example and not by way of limitation, if a user “likes”an article about a brand of shoes the category may be the brand, or thegeneral category of “shoes” or “clothing.” A connection store may beused for storing connection information about users. The connectioninformation may indicate users who have similar or common workexperience, group memberships, hobbies, educational history, or are inany way related or share common attributes. The connection informationmay also include user-defined connections between different users andcontent (both internal and external). A web server may be used forlinking social-networking system 160 to one or more client systems 130or one or more third-party system 170 via network 110. The web servermay include a mail server or other messaging functionality for receivingand routing messages between social-networking system 160 and one ormore client systems 130. An API-request server may allow a third-partysystem 170 to access information from social-networking system 160 bycalling one or more APIs. An action logger may be used to receivecommunications from a web server about a user's actions on or offsocial-networking system 160. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client system 130.Information may be pushed to a client system 130 as notifications, orinformation may be pulled from client system 130 responsive to a requestreceived from client system 130. Authorization servers may be used toenforce one or more privacy settings of the users of social-networkingsystem 160. A privacy setting of a user determines how particularinformation associated with a user can be shared. The authorizationserver may allow users to opt in to or opt out of having their actionslogged by social-networking system 160 or shared with other systems(e.g., third-party system 170), such as, for example, by settingappropriate privacy settings. Third-party-content-object stores may beused to store content objects received from third parties, such as athird-party system 170. Location stores may be used for storing locationinformation received from client systems 130 associated with users.Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

FIG. 2 illustrates example social graph 200. In particular embodiments,social-networking system 160 may store one or more social graphs 200 inone or more data stores. In particular embodiments, social graph 200 mayinclude multiple nodes—which may include multiple user nodes 202 ormultiple concept nodes 204—and multiple edges 206 connecting the nodes.Example social graph 200 illustrated in FIG. 2 is shown, for didacticpurposes, in a two-dimensional visual map representation. In particularembodiments, a social-networking system 160, client system 130, orthird-party system 170 may access social graph 200 and relatedsocial-graph information for suitable applications. The nodes and edgesof social graph 200 may be stored as data objects, for example, in adata store (such as a social-graph database). Such a data store mayinclude one or more searchable or queryable indexes of nodes or edges ofsocial graph 200.

In particular embodiments, a user node 202 may correspond to a user ofsocial-networking system 160. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial-networking system 160. In particular embodiments, when a userregisters for an account with social-networking system 160,social-networking system 160 may create a user node 202 corresponding tothe user, and store the user node 202 in one or more data stores. Usersand user nodes 202 described herein may, where appropriate, refer toregistered users and user nodes 202 associated with registered users. Inaddition or as an alternative, users and user nodes 202 described hereinmay, where appropriate, refer to users that have not registered withsocial-networking system 160. In particular embodiments, a user node 202may be associated with information provided by a user or informationgathered by various systems, including social-networking system 160. Asan example and not by way of limitation, a user may provide his or hername, profile picture, contact information, birth date, sex, maritalstatus, family status, employment, education background, preferences,interests, or other demographic information. In particular embodiments,a user node 202 may be associated with one or more data objectscorresponding to information associated with a user. In particularembodiments, a user node 202 may correspond to one or more webpages.

In particular embodiments, a concept node 204 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 160 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social-networking system 160 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory; anobject in a augmented/virtual reality environment; another suitableconcept; or two or more such concepts. A concept node 204 may beassociated with information of a concept provided by a user orinformation gathered by various systems, including social-networkingsystem 160. As an example and not by way of limitation, information of aconcept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 204 may beassociated with one or more data objects corresponding to informationassociated with concept node 204. In particular embodiments, a conceptnode 204 may correspond to one or more webpages.

In particular embodiments, a node in social graph 200 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible tosocial-networking system 160. Profile pages may also be hosted onthird-party websites associated with a third-party system 170. As anexample and not by way of limitation, a profile page corresponding to aparticular external webpage may be the particular external webpage andthe profile page may correspond to a particular concept node 204.Profile pages may be viewable by all or a selected subset of otherusers. As an example and not by way of limitation, a user node 202 mayhave a corresponding user-profile page in which the corresponding usermay add content, make declarations, or otherwise express himself orherself. As another example and not by way of limitation, a concept node204 may have a corresponding concept-profile page in which one or moreusers may add content, make declarations, or express themselves,particularly in relation to the concept corresponding to concept node204.

In particular embodiments, a concept node 204 may represent athird-party webpage or resource hosted by a third-party system 170. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check-in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “check-in”), causing a clientsystem 130 to send to social-networking system 160 a message indicatingthe user's action. In response to the message, social-networking system160 may create an edge (e.g., a check-in-type edge) between a user node202 corresponding to the user and a concept node 204 corresponding tothe third-party webpage or resource and store edge 206 in one or moredata stores.

In particular embodiments, a pair of nodes in social graph 200 may beconnected to each other by one or more edges 206. An edge 206 connectinga pair of nodes may represent a relationship between the pair of nodes.In particular embodiments, an edge 206 may include or represent one ormore data objects or attributes corresponding to the relationshipbetween a pair of nodes. As an example and not by way of limitation, afirst user may indicate that a second user is a “friend” of the firstuser. In response to this indication, social-networking system 160 maysend a “friend request” to the second user. If the second user confirmsthe “friend request,” social-networking system 160 may create an edge206 connecting the first user's user node 202 to the second user's usernode 202 in social graph 200 and store edge 206 as social-graphinformation in one or more of data stores 164. In the example of FIG. 2,social graph 200 includes an edge 206 indicating a friend relationbetween user nodes 202 of user “A” and user “B” and an edge indicating afriend relation between user nodes 202 of user “C” and user “B.”Although this disclosure describes or illustrates particular edges 206with particular attributes connecting particular user nodes 202, thisdisclosure contemplates any suitable edges 206 with any suitableattributes connecting user nodes 202. As an example and not by way oflimitation, an edge 206 may represent a friendship, family relationship,business or employment relationship, fan relationship (including, e.g.,liking, etc.), follower relationship, visitor relationship (including,e.g., accessing, viewing, checking-in, sharing, etc.), subscriberrelationship, superior/subordinate relationship, reciprocalrelationship, non-reciprocal relationship, another suitable type ofrelationship, or two or more such relationships. Moreover, although thisdisclosure generally describes nodes as being connected, this disclosurealso describes users or concepts as being connected. Herein, referencesto users or concepts being connected may, where appropriate, refer tothe nodes corresponding to those users or concepts being connected insocial graph 200 by one or more edges 206.

In particular embodiments, an edge 206 between a user node 202 and aconcept node 204 may represent a particular action or activity performedby a user associated with user node 202 toward a concept associated witha concept node 204. As an example and not by way of limitation, asillustrated in FIG. 2, a user may “like,” “attended,” “played,”“listened,” “cooked,” “worked at,” or “watched” a concept, each of whichmay correspond to an edge type or subtype. A concept-profile pagecorresponding to a concept node 204 may include, for example, aselectable “check in” icon (such as, for example, a clickable “check in”icon) or a selectable “add to favorites” icon. Similarly, after a userclicks these icons, social-networking system 160 may create a “favorite”edge or a “check in” edge in response to a user's action correspondingto a respective action. As another example and not by way of limitation,a user (user “C”) may listen to a particular song (“Imagine”) using aparticular application (SPOTIFY, which is an online music application).In this case, social-networking system 160 may create a “listened” edge206 and a “used” edge (as illustrated in FIG. 2) between user nodes 202corresponding to the user and concept nodes 204 corresponding to thesong and application to indicate that the user listened to the song andused the application. Moreover, social-networking system 160 may createa “played” edge 206 (as illustrated in FIG. 2) between concept nodes 204corresponding to the song and the application to indicate that theparticular song was played by the particular application. In this case,“played” edge 206 corresponds to an action performed by an externalapplication (SPOTIFY) on an external audio file (the song “Imagine”).Although this disclosure describes particular edges 206 with particularattributes connecting user nodes 202 and concept nodes 204, thisdisclosure contemplates any suitable edges 206 with any suitableattributes connecting user nodes 202 and concept nodes 204. Moreover,although this disclosure describes edges between a user node 202 and aconcept node 204 representing a single relationship, this disclosurecontemplates edges between a user node 202 and a concept node 204representing one or more relationships. As an example and not by way oflimitation, an edge 206 may represent both that a user likes and hasused at a particular concept. Alternatively, another edge 206 mayrepresent each type of relationship (or multiples of a singlerelationship) between a user node 202 and a concept node 204 (asillustrated in FIG. 2 between user node 202 for user “E” and conceptnode 204 for “SPOTIFY”).

In particular embodiments, social-networking system 160 may create anedge 206 between a user node 202 and a concept node 204 in social graph200. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 130) mayindicate that he or she likes the concept represented by the conceptnode 204 by clicking or selecting a “Like” icon, which may cause theuser's client system 130 to send to social-networking system 160 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social-networkingsystem 160 may create an edge 206 between user node 202 associated withthe user and concept node 204, as illustrated by “like” edge 206 betweenthe user and concept node 204. In particular embodiments,social-networking system 160 may store an edge 206 in one or more datastores. In particular embodiments, an edge 206 may be automaticallyformed by social-networking system 160 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 206may be formed between user node 202 corresponding to the first user andconcept nodes 204 corresponding to those concepts. Although thisdisclosure describes forming particular edges 206 in particular manners,this disclosure contemplates forming any suitable edges 206 in anysuitable manner.

In particular embodiments, social-networking system 160 may determinethe social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 170 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, social-networking system 160 may measure orquantify social-graph affinity using an affinity coefficient (which maybe referred to herein as “coefficient”). The coefficient may representor quantify the strength of a relationship between particular objectsassociated with the online social network. The coefficient may alsorepresent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part on the history of the user's actions.Coefficients may be used to predict any number of actions, which may bewithin or outside of the online social network. As an example and not byway of limitation, these actions may include various types ofcommunications, such as sending messages, posting content, or commentingon content; various types of a observation actions, such as accessing orviewing profile pages, media, or other suitable content; various typesof coincidence information about two or more social-graph entities, suchas being in the same group, tagged in the same photograph, checked-in atthe same location, or attending the same event; or other suitableactions. Although this disclosure describes measuring affinity in aparticular manner, this disclosure contemplates measuring affinity inany suitable manner.

In particular embodiments, social-networking system 160 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 100%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object maycomprise 40% of the overall coefficient. In particular embodiments, thesocial-networking system 160 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments,social-networking system 160 may determine coefficients usingmachine-learning algorithms trained on historical actions and past userresponses, or data farmed from users by exposing them to various optionsand measuring responses. Although this disclosure describes calculatingcoefficients in a particular manner, this disclosure contemplatescalculating coefficients in any suitable manner.

In particular embodiments, social-networking system 160 may calculate acoefficient based on a user's actions. Social-networking system 160 maymonitor such actions on the online social network, on a third-partysystem 170, on other suitable systems, or any combination thereof. Anysuitable type of user actions may be tracked or monitored. Typical useractions include viewing profile pages, creating or posting content,interacting with content, tagging or being tagged in images, joininggroups, listing and confirming attendance at events, checking-in atlocations, liking particular pages, creating pages, and performing othertasks that facilitate social action. In particular embodiments,social-networking system 160 may calculate a coefficient based on theuser's actions with particular types of content. The content may beassociated with the online social network, a third-party system 170, oranother suitable system. The content may include users, profile pages,posts, news stories, headlines, instant messages, chat roomconversations, emails, advertisements, pictures, video, music, othersuitable objects, or any combination thereof. Social-networking system160 may analyze a user's actions to determine whether one or more of theactions indicate an affinity for subject matter, content, other users,and so forth. As an example and not by way of limitation, if a userfrequently posts content related to “coffee” or variants thereof,social-networking system 160 may determine the user has a highcoefficient with respect to the concept “coffee”. Particular actions ortypes of actions may be assigned a higher weight and/or rating thanother actions, which may affect the overall calculated coefficient. Asan example and not by way of limitation, if a first user emails a seconduser, the weight or the rating for the action may be higher than if thefirst user simply views the user-profile page for the second user.

In particular embodiments, social-networking system 160 may calculate acoefficient based on the type of relationship between particularobjects. Referencing the social graph 200, social-networking system 160may analyze the number and/or type of edges 206 connecting particularuser nodes 202 and concept nodes 204 when calculating a coefficient. Asan example and not by way of limitation, user nodes 202 that areconnected by a spouse-type edge (representing that the two users aremarried) may be assigned a higher coefficient than a user nodes 202 thatare connected by a friend-type edge. In other words, depending upon theweights assigned to the actions and relationships for the particularuser, the overall affinity may be determined to be higher for contentabout the user's spouse than for content about the user's friend. Inparticular embodiments, the relationships a user has with another objectmay affect the weights and/or the ratings of the user's actions withrespect to calculating the coefficient for that object. As an exampleand not by way of limitation, if a user is tagged in a first photo, butmerely likes a second photo, social-networking system 160 may determinethat the user has a higher coefficient with respect to the first photothan the second photo because having a tagged-in-type relationship withcontent may be assigned a higher weight and/or rating than having alike-type relationship with content. In particular embodiments,social-networking system 160 may calculate a coefficient for a firstuser based on the relationship one or more second users have with aparticular object. In other words, the connections and coefficientsother users have with an object may affect the first user's coefficientfor the object. As an example and not by way of limitation, if a firstuser is connected to or has a high coefficient for one or more secondusers, and those second users are connected to or have a highcoefficient for a particular object, social-networking system 160 maydetermine that the first user should also have a relatively highcoefficient for the particular object. In particular embodiments, thecoefficient may be based on the degree of separation between particularobjects. The lower coefficient may represent the decreasing likelihoodthat the first user will share an interest in content objects of theuser that is indirectly connected to the first user in the social graph200. As an example and not by way of limitation, social-graph entitiesthat are closer in the social graph 200 (i.e., fewer degrees ofseparation) may have a higher coefficient than entities that are furtherapart in the social graph 200.

In particular embodiments, social-networking system 160 may calculate acoefficient based on location information. Objects that aregeographically closer to each other may be considered to be more relatedor of more interest to each other than more distant objects. Inparticular embodiments, the coefficient of a user towards a particularobject may be based on the proximity of the object's location to acurrent location associated with the user (or the location of a clientsystem 130 of the user). A first user may be more interested in otherusers or concepts that are closer to the first user. As an example andnot by way of limitation, if a user is one mile from an airport and twomiles from a gas station, social-networking system 160 may determinethat the user has a higher coefficient for the airport than the gasstation based on the proximity of the airport to the user.

In particular embodiments, social-networking system 160 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, social-networking system 160 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, social-networkingsystem 160 may generate content based on coefficient information.Content objects may be provided or selected based on coefficientsspecific to a user. As an example and not by way of limitation, thecoefficient may be used to generate media for the user, where the usermay be presented with media for which the user has a high overallcoefficient with respect to the media object. As another example and notby way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments,social-networking system 160 may generate search results based oncoefficient information. Search results for a particular user may bescored or ranked based on the coefficient associated with the searchresults with respect to the querying user. As an example and not by wayof limitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results page than resultscorresponding to objects having lower coefficients.

In particular embodiments, social-networking system 160 may calculate acoefficient in response to a request for a coefficient from a particularsystem or process. To predict the likely actions a user may take (or maybe the subject of) in a given situation, any process may request acalculated coefficient for a user. The request may also include a set ofweights to use for various factors used to calculate the coefficient.This request may come from a process running on the online socialnetwork, from a third-party system 170 (e.g., via an API or othercommunication channel), or from another suitable system. In response tothe request, social-networking system 160 may calculate the coefficient(or access the coefficient information if it has previously beencalculated and stored). In particular embodiments, social-networkingsystem 160 may measure an affinity with respect to a particular process.Different processes (both internal and external to the online socialnetwork) may request a coefficient for a particular object or set ofobjects. Social-networking system 160 may provide a measure of affinitythat is relevant to the particular process that requested the measure ofaffinity. In this way, each process receives a measure of affinity thatis tailored for the different context in which the process will use themeasure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503,093, filed 11 Aug. 2006, U.S. patentapplication Ser. No. 12/977,027, filed 22 Dec. 2010, U.S. patentapplication Ser. No. 12/978,265, filed 23 Dec. 2010, and U.S. patentapplication Ser. No. 13/632,869, filed 1 Oct. 2012, each of which isincorporated by reference.

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page that identify a set of users that mayaccess the work experience information on the user-profile page, thusexcluding other users from accessing the information. In particularembodiments, the privacy settings may specify a “blocked list” of usersthat should not be allowed to access certain information associated withthe object. In other words, the blocked list may specify one or moreusers or entities for which an object is not visible. As an example andnot by way of limitation, a user may specify a set of users that may notaccess photos albums associated with the user, thus excluding thoseusers from accessing the photo albums (while also possibly allowingcertain users not within the set of users to access the photo albums).In particular embodiments, privacy settings may be associated withparticular social-graph elements. Privacy settings of a social-graphelement, such as a node or an edge, may specify how the social-graphelement, information associated with the social-graph element, orcontent objects associated with the social-graph element can be accessedusing the online social network. As an example and not by way oflimitation, a particular concept node 204 corresponding to a particularphoto may have a privacy setting specifying that the photo may only beaccessed by users tagged in the photo and their friends. In particularembodiments, privacy settings may allow users to opt in or opt out ofhaving their actions logged by social-networking system 160 or sharedwith other systems (e.g., third-party system 170). In particularembodiments, the privacy settings associated with an object may specifyany suitable granularity of permitted access or denial of access. As anexample and not by way of limitation, access or denial of access may bespecified for particular users (e.g., only me, my roommates, and myboss), users within a particular degrees-of-separation (e.g., friends,or friends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 170, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers 162 may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store 164, social-networking system 160 may senda request to the data store 164 for the object. The request may identifythe user associated with the request and may only be sent to the user(or a client system 130 of the user) if the authorization serverdetermines that the user is authorized to access the object based on theprivacy settings associated with the object. If the requesting user isnot authorized to access the object, the authorization server mayprevent the requested object from being retrieved from the data store164, or may prevent the requested object from being sent to the user. Inthe search query context, an object may only be generated as a searchresult if the querying user is authorized to access the object. In otherwords, the object must have a visibility that is visible to the queryinguser. If the object has a visibility that is not visible to the user,the object may be excluded from the search results. Although thisdisclosure describes enforcing privacy settings in a particular manner,this disclosure contemplates enforcing privacy settings in any suitablemanner.

FIGS. 3A-3B illustrate a headset display device of a virtual realitysystem. In particular embodiments, a virtual reality system may render avirtual space for display to a user on a display device. In particularembodiments, the virtual reality system may be a local system thatincludes devices present locally with respect to a user of the virtualreality system. In particular embodiments, the virtual reality systemmay be a remote device (e.g., a remote server computing machine) or mayat least include a remote device. As an example and not by way oflimitation, the virtual reality system may be defined to include aserver of the social-networking system 160. As another example and notby way of limitation, the virtual reality system may be defined toinclude a server of the social-networking system 160 as well as a localcomputing device. In particular embodiments, the virtual space may be anaugmented reality space in which virtual elements are overlaid on thereal world. As an example and not by way of limitation, the virtualreality system may continuously capture images of the real world (e.g.,using a camera on the headset of the user) and overlay virtual objectsor avatars of other users on these images, such that a user may interactsimultaneously with the real world and the virtual world. In particularembodiments, the user may view the virtual space using a headset device.As an example and not by way of limitation, referencing FIG. 3A, theuser may mount the headset device 320 on the user's head. In particularembodiments, the headset device may be a device that may be mounted,placed, or otherwise connected to the user's head. In particularembodiments, the headset device may include a display mechanism thatdisplays a region of the virtual space to the user. As an example andnot by way of limitation, the display mechanism may include a screenthat displays the region of the virtual space. As another example andnot by way of limitation, the display mechanism may be a projector thatdirectly projects a display of the region of the virtual space to anoptimal point in the user's eyes (e.g., to the fovea of each of theuser's eyes). In particular embodiments, the headset device may includea gaze-tracking mechanism (e.g., employing one or more sensor devices ortransmitter devices) that allow for the tracking of the user's gaze(i.e., an estimated focal point of the user with respect to the virtualspace). Although this disclosure focuses on virtual reality and usesterms commonly associated virtual reality, the disclosure contemplatesapplying the described methods to augmented reality.

In particular embodiments, the virtual reality system may receive one ormore inputs from an input device (e.g., the headset device) that specifyan intent by the user to view a particular region of the virtual space.In particular embodiments, these inputs may include a gaze input thatindicates a location of a user-intended focal point within a region ofthe virtual space. As an example and not by way of limitation,referencing FIGS. 3A and 3B, the user may specify the gaze input bymoving the headset device 320 to adjust the focal point 310. Inparticular embodiments, the focal point may be at a predeterminedlocation on the user's field of view (e.g., the center of the user'sfield of view) of the region of the virtual space. In particularembodiments, the gaze input may be based on sensor data that tracks thelocation of the headset device. The virtual reality system may make useof outside-in tracking, in which a tracking camera is placed external tothe headset device and within the line of sight of the headset device.In outside-in tracking, the tracking camera may track the location ofthe headset (e.g., by tracking one or more infrared LED markers on theheadset device). Alternatively or additionally, the virtual realitysystem may make use of inside-out tracking, in which a tracking cameramay be placed on or within the headset device itself. In inside-outtracking, the tracking camera may capture images around it in the realworld and may use the changing perspectives of the real world todetermine its own position in space. In particular embodiments, thevirtual reality system may track the user's pupils to determine a focalpoint location, such that the user may be able to shift the focal pointby moving the pupils accordingly without any head movement. Inparticular embodiments, the gaze-tracking mechanism may also track oneor more tilt angles of the user's head or headset device, tracking thepitch, yaw, and roll (e.g., tracking the six degrees of freedom) withrespect to a virtual pivot point. FIGS. 3A-3B provide exampleillustrations of pitch, yaw, and roll with respect to axes defined bythe user's head or headset. These tilt angles may be determined based oninputs from one or more tracking cameras. As an example and not by wayof limitation, in an inside-out tracking system, the virtual realitysystem may calculate the tilt angles based on the locations of two ormore regions of the headset (e.g., two or more infrared LED markers).The tilt angles may also be determined based on one or more sensor unitslocated on or within the headset device such as inertial measuringunits, which may include any combination of sensors such asaccelerometers, gyroscopes, and magnetometers. The virtual realitysystem may use data from the inertial measuring units to determinevelocity, orientation, and gravitation forces with respect to theheadset. The virtual pivot point may be a point associated with a headmodel that the virtual reality system creates to represent the user'shead (e.g., based on an average head, based on custom measurementstailored to the user). As an example and not by way of limitation, thevirtual pivot point may be at or near the center of the head model.Based on the current location of the user's head or pupils and thecurrent location of the virtual pivot point, the virtual reality systemmay model a virtual ray that represents the user's gaze, where the raypoints to the focal point. In particular embodiments, the user may beable to shift or maintain the focal point and/or the displayed regionbased on a gaze input (or another suitable input, such as a gestureinput using a controller). As an example and not by way of limitation,the user may be able to shift the region of the virtual space that iscurrently being displayed by pivoting the user's head around the virtualpivot point or by otherwise moving the head (e.g., strafing to the leftor right). In this example, the virtual reality system may determine anew focal point based on the virtual ray (i.e., adjusting the focalpoint to the location pointed to by the virtual ray), and the displayedregion of the virtual space may shift to maintain the focal point at thesame location on the user's field of view (e.g., at the center).

In particular embodiments, the headset device may not include a displaymechanism and may simply have a gaze-tracking mechanism. As an exampleand not by way of limitation, the virtual space may be displayed on oneor more screens (e.g., surrounding all or a portion of the user'sviewable radius). In particular embodiments, the headset device may notinclude a gaze-tracking mechanism and may simply have a displaymechanism. As an example and not by way of limitation, the user's gazemay be tracked by one or more devices located remotely (e.g., one ormore cameras or other sensors pointed toward the user that track thehead and/or pupils of the user). In particular embodiments, the virtualreality system may not require a headset device, in which case thedisplay of the virtual space and the tracking of the user's gaze mayoccur using other means. As an example and not by way of limitation, thevirtual space may be displayed on one or more screens (e.g., surroundingall or a portion of the user's viewable radius), and the user's gaze maybe tracked by one or more devices located remotely (e.g., one or morecameras pointed at the user that track the head or pupils of the user).

In particular embodiments, a reticle may be superimposed directly over,around, or near the focal point of the user's field of view in thedisplayed region of the virtual space. As used herein, the term“reticle” refers to a guide that may visually indicate a location of thefocal point. In particular embodiments, the reticle may be a generatedimage that is overlaid by the virtual reality system on the display. Inparticular embodiments, the reticle may be a physical element (e.g.,fibers embedded on a display screen). The reticle may act as a sightingguide that aids the user in shifting or adjusting the focal point withadded precision.

In particular embodiments, gaze inputs may be used as a means ofinteracting with content in the virtual space. In particularembodiments, the user may be able to interact with virtual objects inthe virtual space by aiming the focal point at “hit targets,” which maybe regions associated with the virtual object or an interactive element.As an example and not by way of limitation, a hit target associated witha particular virtual object may be a subregion of the currentlydisplayed region having a boundary extending around the particularvirtual object. In this example, the user may aim the focal point at thesubregion (e.g., by adjusting the position of a reticle to a pointwithin the subregion) to interact with (e.g., select, pick up, push,etc.) the virtual object. In particular embodiments, the interaction mayonly occur once the user has aimed the focal point at the associated hittarget for a threshold period of time. As an example and not by way oflimitation, a virtual object may only be selected once the focal pointhas been aimed at the associated hit target for one second. Inparticular embodiments, one or more of the hit targets may be “sticky”such that a reticle may gravitate toward the hit targets as the focalpoint approaches these hit targets. In these embodiments, the virtualreality system may effectively be predicting a user intent to aim atthese hit targets. The virtual reality system may predict such userintent based on any of several factors. As an example and not by way oflimitation, such an intent may be predicted when the focal point getswithin a threshold distance of the boundary of the hit target, whenthere is a threshold degree of inertia toward the boundary of the hittarget based on a location and a trajectory of the focal point. Inparticular embodiments, the virtual reality system may not render areticle until the virtual reality system predicts that there is a userintent to interact with virtual objects (or the virtual spacegenerally). As an example and not by way of limitation, a reticle maynot be rendered on the display until it is determined that the focalpoint is approaching a hit target. Although the disclosure focuses onselecting hit targets using a gaze input, the disclosure contemplatesselecting hit targets using any suitable input. As an example and not byway of limitation, a user may select a hit target using a controllerthat corresponds to a rendering of the user's hand. In this example, theuser may move the controller and cause the rendering of the user's handto point at the hit target, tap the hit target, grab the hit target,etc., and may as a result activate the hit target in an intended manner.A point gesture may be performed with a controller by pressing a button,performing some gesture in the virtual world, performing some gesture inthe real world (e.g., lifting the finger in the real world off acontroller, causing the finger to point in the virtual world—this may beparticularly intuitive since users may be acting out the act of pointingin real life), and/or by any other suitable method. In particularembodiments, the point gesture may cause a beam (e.g., a laser-pointerbeam) to emanate from the finger to aid with pointing at particularareas or items with accuracy (e.g., especially in cases where the areaor item that is being pointed to is far away within the virtual space).

In particular embodiments, the user may be able to use gaze inputs tonavigate a menu of images (e.g., photos, renderings), videos,interactive content (e.g., games or other experiences that give users adegree of control over what occurs in the content), etc.—collectivelytermed herein as “visual media items”—and to view particular visualmedia items. In particular embodiments, the visual media items may bespherical or otherwise immersive in nature (e.g., 360-degree visualmedia items, 180-degree visual media items, panorama or wide-anglevisual media items, etc.). For purposes of this disclosure, the terms“spherical” and “360-degree” may be used interchangeably. In theseembodiments, the user may be able to use gaze inputs to view differentregions of the images or videos by adjusting the focal point, asdescribed herein.

FIG. 4A illustrates an example menu of media item feeds. In particularembodiments, the virtual reality system may initially display a menu ofdifferent categories of visual media items. The menu may include avariety of different feeds that include visual media items. As anexample and not by way of limitation, referencing FIG. 4A, the menu mayinclude the “Saved” feed 410 that includes visual media items (e.g., thevisual media item 440) that the user previously saved (e.g., from anewsfeed of an online social network) or received (e.g., from a friendor contact, from a social connection on an online social network), the“Following” feed 420 that includes visual media items that were postedor uploaded by social connections or organizations (e.g., a page orgroup on an online social network) that the user may have opted tofollow, the “Discover” feed 430 that may promote visual media items byincluding newly uploaded visual media items and/or visual media itemsthat may be of interest to the user (e.g., determined based on profileinformation, demographic information, geo-location information,affinities toward concepts, history of visual media items previouslyviewed by the user, history of visual media items previously liked bythe user, views previous viewing history or habits, or any othersuitable information associated with the user), or any other suitablefeeds. In particular embodiments, not all feeds may be visible withinthe currently displayed region, in which case, the user may be able toaim the focal point at areas that prompt the display of additionalfeeds. As an example and not by way of limitation, the user may aim thefocal point toward an area on the right of the currently displayedregion, prompting the displayed feeds to scroll and display additionalfeeds. In particular embodiments, the user may be able to navigatethrough content online (e.g., by accessing webpages using a browserapplication), or perform other suitable actions. Although thisdisclosure focuses on visual media items, it contemplates applying thedescribed concepts to other content items (e.g., audio items).

FIG. 4B illustrates an example feed with several subfeeds. In particularembodiments, the user may be able to select a particular feed bysubmitting an appropriate gaze input. As an example and not by way oflimitation, the user may be able to select the “Discover” feed by aimingthe focal point at a hit target associated with the following feed. Oncea particular feed is selected, the particular feed may shift into thecenter of the displayed region of the virtual space. In particularembodiments, each of the feeds may be subcategorized further intosubfeeds, which may be selectable by the user in the same manner as thefeeds. As an example and not by way of limitation, referencing FIG. 4B,within the “Discover” feed, the user may be able to select a subfeed ofa particular group (e.g., the subfeed 450 associated with a group named“Nature Channel”), which may include visual media items uploaded inassociated with the particular group (e.g., nature videos). Inparticular embodiments, just as with feeds, the user may be able toprompt the display of additional subfeeds by aiming the focal point in asuitable manner.

In particular embodiments, the user may be able to select individualvisual media items that are presented within a feed or subfeed to viewtheir respective content. In particular embodiments, the visual mediaitems may be presented as pages, with a set of visual media items oneach page (e.g., as illustrated in FIGS. 4A-4B). Each of the visualmedia items may be represented by a respective thumbnail. The user maybe able to navigate among different pages of visual media items usinggaze inputs (e.g., looking to the right, left, top, or bottom to promptthe display of a different page that includes a different set of visualmedia items).

FIGS. 5A-5E illustrate an example interface of a slide show of visualmedia items. In particular embodiments, the user may select one or moreimages from the feed or subfeed to view. In particular embodiments, theimages may be displayed in a slide show that includes the selectedimages. In particular embodiments, the virtual reality system may alsodisplay related images (or other visual media items) in the slide showthat were not explicitly selected by the user (e.g., other images in thefeed or subfeed, other images that may be interesting to the user basedon information associated with the user as described herein, otherrelated images, etc.). The slide show may proceed from one image to thenext automatically, allowing for each image to be displayed for a periodof time. As an example and not by way of limitation, each image may bedisplayed for twenty seconds, after which the next image may bedisplayed. In particular embodiments, a time element may display anindication of a duration of time remaining before the slide showproceeds to the next image. As an example and not by way of limitation,referencing FIGS. 5A-5C, the time element 510 may indicate a proceedingcountdown as time passes, In particular embodiments, the user may beable to control the procession of the images using gaze inputs. Inparticular embodiments, the user may aim the focal point at virtualbuttons displayed in the virtual space (e.g., overlaid in a suitableimage on the displayed visual media item). As an example and not by wayof limitation, referencing FIG. 5A, the user may be able to aim thefocal point at a hit target associated with the “pause” button 540 thathalts a timer associated with the time element 510. As another exampleand not by way of limitation, the user may be able to aim the focalpoint at hit targets associated with a “next” or a “previous” button tomove forward or backward, respectively, in the procession of visualmedia items. As an example and not by way of limitation, referencingFIG. 5A, the user may be able to aim at the “previous” button 520 toswitch to a corresponding previous visual media item, or aim at the“next” button 530 to switch to a corresponding next visual media item.

FIGS. 6A-6D illustrate an example transition from a current visual mediaitem to a next visual media item in response to a user input. In theseseries of example figures, the user moves the focal point from the timeelement 610 to the “next” button 630. By FIG. 6D, the “next” button 630may have been selected, causing the virtual reality system to displaythe corresponding next visual media item. Referencing FIG. 6A, atransition to a previous visual media item may occur if the user aimsthe focal point toward the “previous” button 620. In particularembodiments, the slide show may proceed only in response to user inputs(e.g., gaze inputs aiming the focal point at hit targets of a “next” or“previous” button). In particular embodiments, the user may be able tospeed up the timer to reduce or increase the duration of time remainingfor the display of a particular image. In particular embodiments, thismay be done using a timeline-scrubber element that may be displayed at asuitable location on the user's field of view (e.g., overlaying or nearthe display of a respective image). The timeline-scrubber element mayinclude a display of a timeline indicating the period of time for whichthe image is to be displayed and a movable scrubber component that mayindicate the current point in time on the timeline. As an example andnot by way of limitation, the user may aim the focal point at a hittarget associated with a scrubber within a timeline-scrubber element toselect the scrubber and then may shift the focal point to move thescrubber along the timeline-scrubber element (e.g., to the right toreduce the time remaining and to the left to increase the timeremaining). For example, referencing FIG. 5A, the time element 510 mayinclude a timeline-scrubber element such that the countdown may beaffected by user inputs (e.g., increasing or decreasing the timeremaining). Although this disclosure focuses on timeline-scrubberelements that are oriented horizontally, it contemplates any suitableorientation (e.g., vertical, diagonal, circular, etc.). In particularembodiments, the scrubber may include a display of a mini version, orsome other representation, of the currently displayed image. As anexample and not by way of limitation, the previous” button 520 mayinclude a representation (e.g., a spherical representation) of itscorresponding visual media item, and the “next” button 530 may similarlyinclude a representation of its corresponding visual media item. Inparticular embodiments, the timeline-scrubber/time element (e.g., thetime element 510 in FIGS. 5A-5C) and other elements (e.g., the“previous” button 520 and the “next” button 530 in FIGS. 5A-5C) may be aspherical representation of the image that may account for visualeffects like parallax and/or perspective to create an illusion of depth.FIGS. 5D-5E provide example illustrations of parallax and/or perspectivefor these elements as a user looks right and left, respectively, in thevirtual space.

In particular embodiments, the user may be able to use speech input(e.g., using voice commands) to perform some of the same functionsdescribed herein in the context of gaze inputs. As an example and not byway of limitation, the user may be able to pause or skip to the nextvisual media item by speaking appropriate voice commands (e.g., “pause,”“next”). In particular embodiments, speech inputs may be used inaddition to alternative to gaze inputs.

FIGS. 7A-7C illustrate an example timeline-scrubber element associatedwith a video. FIG. 8 illustrates an alternative exampletimeline-scrubber element associated with a video. In particularembodiments, the user may select one or more videos to view, which mayprompt the virtual reality system to display one of the selected videos.In particular embodiments, for a currently displayed video, the user maybe presented with a timeline-scrubber element that may be used tonavigate through the video, with a timeline corresponding to thetimeline of the respective video and a movable scrubber. The user may beable to select the movable scrubber (e.g., using gaze inputs asdescribed herein, “grabbing” and moving the scrubber by appropriatelyusing a controller that corresponds to a rendering of the hand of theuser, etc.) and move it to a different location on the timeline, and maythereby move to a different point in time in the video. As an exampleand not by way of limitation, referencing FIG. 7A, the timeline-scrubberelement may include a horizontal timeline 710 representing the timelineof the video and a movable scrubber 720 that is positioned over thecurrent point in time in the video. In this example, the user may selectand move the movable scrubber 720 to the left or right to navigatebackward or forward, respectively, in the video. FIGS. 7A-7B illustratesthe moving of the movable scrubber from its position in FIG. 7A to itsposition in FIG. 7B. In particular embodiments, the scrubber may includea display of a mini version, or some other representation, of a frame ofthe video (e.g., a numerical time-point, a spherical representation ofthe frame). The displayed frame may be the current frame or may changeaccording to the location of the scrubber on the timeline. As an exampleand not by way of limitation, referencing FIG. 7A, the displayed framein the movable scrubber 720 may correspond to the frame that exists ator around the time-point where the scrubber is positioned and may updateas the scrubber is moved along the timeline. In particular embodiments,the timeline-scrubber element may be presented to the user in responseto an appropriate user input. As an example and not by way oflimitation, the timeline-scrubber element may be presented to the userin response to the user tapping a touch-sensitive location on a headsetdevice, aiming the focal point at a particular region of the display(e.g., the bottom of the display), performing a particular gesture witha controller, or any other suitable input. In particular embodiments,the timeline-scrubber element may be presented along with one or moreother menu-option elements. As an example and not by way of limitation,the user may be presented with a “previous” button (e.g., to revert to aprevious visual media item in a sequence), a “next” button (e.g., toproceed to the next visual media item in a sequence), a “forward” button(e.g., to speed up the playback), a “rewind” button (e.g., to slow downthe playback), a closed-captioning button, or any other menu-optionelements that may be suitable for visual media items. For example,referencing FIG. 7C, the “next” button 730 may appear to the right ofthe timeline 710. In particular embodiments, these menu-option elementsmay be activated by a gaze input (e.g., by way of aiming the focal pointat the intended menu-option element for a threshold period of time) orany other suitable input (e.g., using the controller system describedherein). In particular embodiments, the timeline-scrubber element andthe menu-option elements may be presented to the user as part of asingle heads-up display. In particular embodiments, thetimeline-scrubber element and/or the menu-option elements may appear ata particular region of the display (e.g., at the bottom of the currentlydisplayed region) and may remain fixed in place until the user submitsan input or until a period of time lapses without input from the user.FIG. 8 illustrates an alternative rendition of the timeline-scrubberelement, in which the movable scrubber 810 does not include arepresentation of its corresponding frame, the representation beinginstead displayed in an associated element (e.g., the element 820).Although the disclosure focuses on scrubber elements being used tonavigate through videos or slideshows, the disclosure contemplates otheruses for the scrubber-element interface. As an example and not by way oflimitation, a scrubber element may be used to navigate through a menu ofitems or navigate through a document. For example, the scrubber elementmay function like a scroll bar, such that a user may grab the scrubberand move it to proceed in an intended direction.

In particular embodiments, just as in the case with images, videos maybe presented as a slide show (i.e., proceeding from one to the next).Furthermore, in particular embodiments, just as in the case with images,the virtual reality system may also display related videos (or othervisual media items) that were not explicitly selected by the user. Inparticular embodiments, the user may be able to proceed to a next orprevious video by aiming the focal point at appropriate hit targets(e.g., a “next” or a “previous” button). In particular embodiments, theuser may select both images and videos for display and both types ofvisual media items may be presented to the user one in succession.

In particular embodiments, the content that appears in the feeds,subfeeds, or next in a slide show of visual media items may be based ona conversation analysis performed by the virtual reality system. Theconversation analysis may be based on speech recognition ofconversations (which may comprise speech between two or more users, ormay simply comprise speech by a user with no other userpresent/listening), text or image (e.g., emoji) analysis ofconversations (e.g., if users are communication in text or images),video analysis (e.g., analyzing communications in sign language and/orbody language), etc. The conversation analysis may determine particulartopics. As an example and not by way of limitation, the conversationanalysis may determine a particular topic when one or more keywordsassociated with the particular topic are detected. In particularembodiments, the virtual reality system may promote for presentation ina feed, subfeed, or slide show one or more visual media content itemsthat are associated with these determined particular topics (e.g.,related photos, videos, posts, ads, etc.). As an example and not by wayof limitation, a first user and a second user may have starteddiscussing the results of a recent election debate while viewing a catvideo. In this example, the virtual reality system may detect the topic“Election Debate” and may promote videos associated with that topic(e.g., because the users may have changed conversations and as a resulttheir interest in content may have changed). The presentation may beprivate to the user or may be presented to a group of users in a sharedvirtual space (e.g., to the subset of users who are engaged in aconversation within a virtual room, to users who have meet the user'sand the content's privacy settings for sharing, users who fulfill bothcriteria, etc.). Similarly, in particular embodiments, the determinationof the particular topics may be performed on an individual basis or maybe performed for the group of users in the shared virtual space. Inparticular embodiments, the determination of the particular topics maybe based on a current context as described herein, including informationrelated to the user (e.g., social graph information from the socialgraph 200) for whom the particular topics are being determined. Inparticular embodiments, the virtual reality system may use one or moresuitable machine learning algorithms to optimize its conversationanalysis functionality over time. In particular embodiments, a machinelearning algorithm may be based on or may be focused on dataspecifically acquired from user interactions in virtual reality. Inparticular embodiments, a machine learning algorithm may be based ondata acquired from the social-networking system 160 (e.g., conversationson the online social network, topics on the online social network,trending topics on the online social network, etc.). In particularembodiments, users may leverage this functionality as a search tool. Asan example and not by way of limitation, the user may be able toidentify cat videos by speaking words associated with the topic “Cat”(e.g., “cat,” “meow”).

In particular embodiments, a transition effect may be employed whentransitioning from one virtual space to another. In particularembodiments, when transitioning from one content item (which may berendered as an entire virtual space or as part of a virtual space) toanother, the virtual reality system may employ a transition effect. Asan example and not by way of limitation, the virtual reality system mayemploy a transition effect when transitioning from one photo, video, orany other media item, to another photo, video, or any other media item.Significant user testing has revealed that many users find it jarring tocut or switch immediately from one content item to another, such that itmay negatively affect user experience generally. Sometimes, it even ledto feelings of motion sickness, nausea, or unease (e.g., because of acognitive disconnect resulting from the sudden change in visual inputaccompanied by a lack of corresponding movement). By employing atransition effect, the virtual reality system may mitigate some of thesenegative effects. Any suitable transition effect may be employed. As anexample and not by way of limitation, the virtual reality system mayemploy a “telescoping” or a “camera-shutter” effect, in which a currentview of a first content item is contracted toward a central point (e.g.,with the surrounding area fading to black) to be replaced with a view ofa second content item that expands outward from the central point. Asother examples and not by way of limitation, a fade effect, a dissolveeffect, a wipe effect, etc., may be employed. In particular embodiments,the user may be able to specify a particular transition effect orcustomize a transition effect and when they are to be employed (e.g., acertain transition effect when transitioning among photos, a certaintransition effect when transitioning between a photo and a video), sothat the virtual reality system may use the selected or customizedtransition effect according to the user's specifications.

Although this disclosure focuses on interacting with particular types ofcontent in a virtual space, it contemplates interacting with anysuitable types of content in a virtual space. As an example and not byway of limitation, the user may be able to use gaze inputs to navigatemenus of content generally (e.g., a newsfeed interface of an onlinesocial network, web pages) in a manner similar to that described withrespect to menus of image and/or video content. As another example andnot by way of limitation, the user may be able to navigate through pagesof a book. As another example and not by way of limitation, the user maybe able to navigate through a map. As another example and not by way oflimitation, the user may be able to navigate through a virtual world(e.g., in a game).

In particular embodiments, the virtual reality system may includereticles of different types that may be generated and overlaid on theuser's field of view. In particular embodiments, the different types mayhave different functions that may have different effects in the virtualspace (e.g., on virtual objects) in association with a gaze input. Thismay allow the user to submit the same types of gaze input to interactwith the virtual spaces in different ways, with the effect of theinteraction depending at least in part on the type of the currentreticle. As an example and not by way of limitation, the user may aim agrab-type reticle at a hit target associated with a virtual object for athreshold period of time, upon which the virtual object may be grabbedor picked up (e.g., the virtual object may appear to be secured to alocation associated with the reticle such that it may follow the path ofthe reticle). As another example and not by way of limitation, the usermay aim a next-page-type reticle (or previous-page-type reticle) at ahit target near the right edge (or left edge) of a page (e.g., the edgeof a page of a virtual book), upon which the current page may switch tothe next page (or previous page). As another example and not by way oflimitation, the user may aim a highlighter-type reticle at text on apage, upon which the appropriate text may be highlighted. As an exampleand not by way of limitation, the user may aim a selection-type reticleat text or a virtual object, upon which the text or virtual object maybe selected (e.g., for further input). As another example and not by wayof limitation, the user may aim a paintbrush-type reticle (or pen-typereticle) at a region of the virtual space or at a region or hit targetassociated a virtual object, upon which the appropriate area may bepainted (or drawn/written upon as appropriate). As another example andnot by way of limitation, the user may aim a push-type reticle (orpull-type reticle) at a hit target associated with a virtual object,upon which the virtual object may be pushed (or pulled). As anotherexample and not by way of limitation, the user may aim a fire-typereticle, a laser-type or slingshot-type reticle, or another suitablegamified reticle at a region in the virtual space or at a hit targetassociated with a virtual object, upon which a gamified function mayoccur (e.g., burning a region of the virtual space or a virtual object,shooting at it with a laser, launching an object, etc.).

In particular embodiments, the different types of reticles may appearvisually different (e.g., in shape, color, size, etc.) to the user. Thismay help the user distinguish among the reticles and determine theeffect a gaze input with the reticle would have in the virtual space. Asan example and not by way of limitation, a grab reticle may be in theshape of a hand. As another example and not by way of limitation, anext-page-type reticle may be in the shape of an arrow. As anotherexample and not by way of limitation, a laser-type reticle may be in theshape of a crosshair.

In particular embodiments, the user may be able to select a reticle typebased on a suitable input. As an example and not by way of limitation,the user may select a desired reticle from a menu of reticles.

FIGS. 9A-9D illustrate different example reticles that dynamicallychange based on context. In particular embodiments, a reticle type of areticle displayed on the user's field of view may be dynamicallydetermined by the virtual reality system. In particular embodiments, indetermining a reticle type, the virtual reality system may effectivelybe attempting to predict the user's intended type of interaction basedon contextual information. In particular embodiments, the reticle mayautomatically change as appropriate based on a determined currentcontext, which may be based on any combination of several differentfactors described herein (or any other suitable factors). As an exampleand not by way of limitation, referencing FIGS. 9A-9B, the neutralreticle 920 in FIG. 9A may change into the grab-type reticle 930 in FIG.9B as the neutral reticle 920, in response to a user input, approachesor reaches the virtual object 910 (or in response to the neutral reticlehovering near or over the virtual object 910 for a threshold period oftime). As another example and not by way of limitation, referencingFIGS. 9C-9D, the neutral reticle 950 may change into the pen- orhighlighter-type reticle 970 in response to a user input selecting thevirtual object 960 (e.g., a representation of a book), which summons aview of text content associated with the virtual object 960 (e.g., apage of a book associated with the virtual object 960). In particularembodiments, in determining the reticle type that is appropriate for acurrent context, the virtual reality system may calculate a score forthe different reticle types based on one or more of the differentdescribed factors (or any other suitable factors). In these embodiments,the virtual reality system may determine a subset of the reticle typesthat are appropriate based on the respective scores of the reticletypes. As an example and not by way of limitation, the virtual realitysystem may determine that only reticle types with a score above athreshold score are appropriate. In particular embodiments, the virtualreality system may rank the different reticle types based on theirscore, and may determine that only reticle types with a rank above athreshold rank are appropriate. As an example and not by way oflimitation, the virtual reality system may determine that only thetop-ranked reticle type is appropriate.

In particular embodiments, the reticle type may be based on a determinedcontext based on the location and/or trajectory of the reticle withrespect to one or more virtual objects. As an example and not by way oflimitation, the reticle may change as it approaches a particular virtualobject (e.g., as determined by the location and/or trajectory of thereticle), or when it is within a threshold distance of the boundary of ahit target associated with the particular virtual object. In particularembodiments, each virtual object may have a particular object type, suchthat a reticle approaching different virtual objects of different objecttypes in the same manner may cause the virtual reality system todetermine reticles of different types based on the respective objecttype. As an example and not by way of limitation, a reticle thatapproaches a hit target associated with a virtual object that may begrabbed, the reticle may become a grab-type reticle. As another exampleand not by way of limitation, a reticle that approaches a hit targetassociated with an edge of a page may become a next-page-type orprevious-page-type reticle. As another example and not by way oflimitation, a reticle that approaches a play or pause button (e.g.,within a video-viewing environment), or any other suitable interactiveelement, may change to a selection-type reticle.

In particular embodiments, the reticle type may be based on a determinedcontext based on information associated with the current virtual space.Such information may include a virtual-space type of the current virtualspace (e.g., whether it is a space associated with a game, a spaceassociated with visual media items, a space associated with an onlinesocial network, etc.). As an example and not by way of limitation, alaser-type reticle may appear within a particular game-type virtualspace when the reticle approaches a hit target associated with an enemyunit. As another example and not by way of limitation, a highlight-typereticle may appear within a book-browsing virtual space when the reticlein within a threshold distance of text.

In particular embodiments, the reticle type may be based on a determinedcontext based on information associated with the user (e.g.,social-graph information from the social graph 200). In particularembodiments, this information may include demographic information. As anexample and not by way of limitation, users of a particular age groupmay be more likely to use a laser-type reticle than users of a differentage group. In particular embodiments, this information may be based onprevious interactions of the user. As an example and not by way oflimitation, a user who frequently highlights and/or reads books in thevirtual space may be more likely to intend a highlighter-type reticle,in which case the virtual reality system may be more likely to determinesuch a reticle for this user. In particular embodiments, the determinedcontext may be based on information associated with social connectionsof the user (e.g., as determined based on the social graph 200). As anexample and not by way of limitation, if a particular reticle type isused frequently among the user's first-degree connections generally, oramong a subset of the user's first-degree connections (e.g.,first-degree connections for whom the user has at least a thresholdaffinity level, first-degree connections who are family members), theuser may be more likely to favor that particular reticle type (and thevirtual reality system may therefore be more likely to determine thatparticular reticle type than otherwise). In particular embodiments, thedetermined context may be based on information associated with usersgenerally. As an example and not by way of limitation, the virtualreality system may be more likely to determine a reticle type that iscurrently popular among users (e.g., one that is frequently being used)that a reticle type that is less popular. In particular embodiments,this information may include account information of the user thatdetermines whether the user has access to particular reticles. As anexample and not by way of limitation, some reticle types may be premiumcontent, and the user may be required to pay for access to thesereticles. As another example and not by way of limitation, some reticletypes may be restricted for users who are members of a particular group(e.g., a particular age group).

In particular embodiments, the reticle type may be based on a determinedcontext based on the environment external to the virtual space. As anexample and not by way of limitation, the reticle type may be based on acurrent time of day or a current date. For example, a laser-type reticlemay appear more frequently at a time and date associated with leisuretime (e.g., in the evening, during the weekend). As another example andnot by way of limitation, the reticle type may be based on a current orfuture event (e.g., as determined based on the user's calendar, based ontrending news or topics, etc.). For example, a highlighter-type reticlemay be more likely to appear if the virtual reality system determinesbased on the user's calendar that the user is about to have final examsin school.

In particular embodiments, the reticle type may be based on a determinedcontext based on one or more suitable inputs from the user. As anexample and not by way of limitation, the user may perform a particulargesture with a controller (e.g., a controller positioned on a hand)while approaching a virtual object, and the reticle type that isdetermined may be based in part on this particular gesture. As anotherexample and not by way of limitation, the user may perform a gesturethat may be a pattern or other gesture traced by the reticle by a seriesof gaze inputs by the user. As another example and not by way oflimitation, the user may speak a voice command that causes the reticletype to be changed accordingly. For example, the user may say the word“laser,” which may change the reticle to a laser-type reticle.

FIG. 10 and FIGS. 11A-11D illustrate example interfaces for selectingone or more virtual tools. In particular embodiments, the virtualreality system may render, in a virtual space, one or more virtualtools, which are items that may be virtually picked up by a user tointeract with the virtual space in specific ways. Each tool may have aspecific function within the virtual environment. In particularembodiments, a set of tools may be displayed to the user in a suitablelocation. As an example and not by way of limitation, the tools mayappear toward the bottom of the virtual space and the user may be ableto view them by adjusting the field of view downward with respect to thevirtual space. In particular embodiments, the tools may not always bevisible, but may be triggered by a particular input of the user. As anexample and not by way of limitation, a particular gaze input (e.g., agesture traced by the reticle, a gaze downward) or another suitableinput (e.g., a tap on a touch-sensitive location on a headset device, agesture made with a hand) may cause the tools to appear. In particularembodiments, the tools may be rendered to appear in the virtual space asthough they were on one or more virtual trays of any suitable form, on atool belt, in a tool bag, in a drawer, etc. FIG. 10 illustrates anexample interface where a set of tools 1010, 1020, and 1030 appear on avirtual tray. The set of tools may be relevant to the current virtualspace illustrated in FIG. 10, which may include a rendering of a video.In this example, the user may select the commenting tool 1010 and leavea comment at any time-point in the video, the time-point being specifiedby the timeline-scrubber element 1040. Similarly, FIG. 11C illustratesan interface where sets of tools appear on different trays (e.g., thetray 1160). In particular embodiments, the tools may simply be displayedas elements floating on the current view. FIG. 11A illustrates a set ofvirtual tools—e.g., the friend-finder tool 1110, the tablet tool 1120,the virtual mirror tool 1130—that float on the current view. Asillustrated in FIG. 11A, the user may be able to select any of thevirtual tools (e.g., the tablet tool 1120). FIG. 11B illustrates theresult of selecting the social-network tool 1150, which may cause thedisplay of an interface 1140 of an online social network (e.g.,Facebook). Similarly, FIG. 11D illustrates an interface where a set oftools appears in the floating menu 1180. FIG. 11D also illustrates adesktop or tablet tool that the user may currently be using to viewcontent, which may be edited using one of the tools in the floating menu1180.

FIGS. 12A-12E illustrate examples of interfaces of handling differentvirtual tools with different functionalities. In particular embodiments,there may be different tools that perform some of same or similarfunctions as the different reticle types described herein. As an exampleand not by way of limitation, the set of tools may include a laser toolor a slingshot tool, a paintbrush tool, a highlighter tool, a cameratool, a marker tool, a sticker tool, a comment tool, a remote-controltool (e.g., which may be used to change currently displayed content), alaser-pointer tool (e.g., which may be used as a presentation aid forpresenting a slide deck to other users in a virtual space), or any othersuitable tool. The tools may create a more tangible and defined sense ofcontrol for the user, with the user able to virtually pick up and “hold”particular tools with particular functions. FIG. 12A illustrates anexample of a marker tool 1210 being held by the user. As an example andnot by way of limitation, the marker tool 1210 may be used to write ordraw in the virtual space (e.g., on content items, on virtual objects,in three dimensions in the virtual space). In particular embodiments,when a particular tool is held, as described further herein, additionalrelevant options may be presented to the user. As an example and not byway of limitation, referencing FIG. 12A, the interactive element 1220corresponding to an eraser may be presented to the user (e.g., at alocation corresponding to the wrist of the user's hand that is virtuallyholding the marker tool 1210). As another example and not by way oflimitation, elements that may customize features of the tool being heldmay be provided, such as the color-adjustor element 1230 (e.g., whichmay be used to adjust the color of the marker tool 1210) or thesize-adjustor element 1230 (e.g., which may be used to adjust the sizeof the tip of the marker tool 1210). FIG. 12C illustrates an examplecolor-adjustment interface that includes the color wheel 1260 foradjusting the color of the marker tool 1210. FIG. 12D illustrates anexample size-adjustment interface that includes the size-adjuster 1270for adjusting the size of the tip of the marker tool 1210. FIG. 12Billustrates an example of a paintbrush tool 1250 being held by the user.As an example and not by way of limitation, the paintbrush tool 1250 maybe used to paint or draw in the virtual space (e.g., on content items,on virtual objects, in three dimensions in the virtual space). FIG. 12Eillustrates an example of a camera tool 1280 attached to a stick orextension tool 1290 that is being held by a user for taking a selfieimage (e.g., of the user's avatar as it appears in the current virtualspace).

In particular embodiments, the tools may be selected and virtually heldby the user based on one or more inputs submitted to the virtual realitysystem. As an example and not by way of limitation, the user may aim areticle (e.g., one that may automatically have become a grab-typereticle) at a particular tool, which may cause the tool to be “pickedup” and held by the reticle such that the particular tool may appear tobe secured to a location associated with the reticle (such that it mayfollow the path of the reticle as the user shifts the focal point). Inparticular embodiments, while the tool remains held by the user, furtheruser inputs (e.g., gaze inputs, hand-gesture inputs) may have effects inthe virtual space based on the nature of the tool being held. As anexample and not by way of limitation, when the user holds a camera tool,a gaze input at a particular region of the virtual space for a thresholdperiod of time or a tap input on a headset device may cause a picture tobe taken of the particular region or a subregion of the particularregion (e.g., which may have been displayed in a viewfinder of thecamera tool). As another example and not by way of limitation, the usermay select a particular sticker (e.g., a GIF, a mini image, an emoji, orany other suitable sticker) from a menu associated with a sticker tool,and when the user holds the sticker tool with this particular stickerselected, the user may be able to gaze for a threshold period at asubregion of currently displayed content in the virtual space (e.g., avisual media item, a newsfeed of an online social network, a document)and thereby cause the sticker to be overlaid on the subregion. Asanother example and not by way of limitation, the user may select apen/marker tool and draw on a region of the virtual space by moving thereticle in intended trajectories (with the pen/marker tool following thereticle and tracing a drawing in its wake).

In particular embodiments, the set of tools may include a build toolsuch as a space-marker tool or something similar (e.g., a sculptingtool) that allows users to quickly create virtual objects in threedimensions. These objects, once created, may behave like other objectsin virtual reality, and may have properties (e.g., weight, color,texture, stiffness, tensile strength, malleability) that may be assignedby default and/or may be specified/altered by users (e.g., the creator).As an example and not by way of limitation, a user may be able to draw asword using a space-marker tool, causing the sword to be created as anobject in the virtual space. The user may then be able to interact withthe sword just as though it were any other virtual tool (e.g., pickingit up, swinging it, hitting other objects with it, etc.). As anotherexample and not by way of limitation, a user may be able to draw a gameboard with board game pieces. In this example, the user may be able tothen play a board game with the board and the pieces later with theuser's friends. As another example and not by way of limitation, theuser may be able to make furniture or other items that may be placed inthe virtual space. As another example and not by way of limitation, theuser may be able to create nametags for people in a room by drawing itin the air, or may simply draw words (e.g., their names) in the air forfun. As another example and not by way of limitation, a user may be ableto draw a speech bubble, then add text, images, etc., to the speechbubble, and put it over the head of the user's avatar (or another user'savatar, or any other suitable position in the virtual room). As anotherexample and not by way of limitation, the user may be able to createballoons or cakes for a birthday party to be held in a virtual room. Inparticular embodiments, objects that are created may be saved and keptindefinitely in storage (e.g., associated with the account of the userwho created or currently possesses it). In particular embodiments,objects can be cloned. In particular embodiments, objects can bedistributed to other users. In particular embodiments, the build toolmay be used to modify games as users see fit. As an example and not byway of limitation, the user may be playing an arcade-style game and maychoose to create objects that can be used in the game. In particularembodiments, the games may be created on the fly with other users. As anexample and not by way of limitation, two users in a virtual room mayplay a game of three-dimensional tic-tac-toe on a table or in the air.In particular embodiments, the build tool functionality can beintegrated with the real world. As an example and not by way oflimitation, users (in the same location in real life or in differentlocations in real life) may play a game similar to “Pictionary,” where auser pulls a physical card in real life that includes a word or conceptand then draws it in the virtual world to let other users guess what theword or concept was. In this example, the virtual reality system may bepresenting an augmented reality to the users, so that they are able tosee the cards (or a rendering of the cards) that they are pulling inreal life. As another example, and not by way of limitation, a virtualobject may be printed out into the real world using a 3D printer, orotherwise manufactured in the real world.

In particular embodiments, the set of tools may include anaudio-commenting tool. The audio-commenting tool, when selected andheld, may function like a recording device that records the users voiceand creates an audio-comment file that may be associated with thevirtual space or content in the virtual space. The user (or other userswith permission) may later access and play back the audio-comment file.As an example and not by way of limitation, the user may record audiocommentary for a set of photos in a slide show that may for example,describe each photo. In this example, another user who accesses the setof photos may be able to listen to the audio commentary as the userviews the individual photos in the set of photos. In particularembodiments, the virtual reality system may allow for the same type offunctionality with image-comment files (e.g., captured and/or posted byan image-commenting tool), video-comment files (e.g., captured and/orposted by a video-commenting tool), text-comment files (e.g., capturedand/or posted by an text-commenting tool), or reaction-comment files(e.g., likes, wows, etc., captured and/or posted by anreaction-commenting tool). In particular embodiments, a visualrepresentation of a comment file (e.g., a suitable icon) may be placedsomewhere in the virtual space, such that a user who views the sameregion of the virtual space may be able to see the virtualrepresentation of the comment file. These comment files may remain atthe locations where they are placed and may thereby be used tocommunicate information about the content with which they areassociated. As an example and not by way of limitation, within a photo,a user may record audio comments describing different objects depictedin the photo and place them near the object they describe. In particularembodiments, the virtual reality system may allow the user to use aslingshot tool, a gun tool (e.g., a sticker gun tool), or anothersuitable tool to launch a comment file (or reactions, stickers, etc.) inthe virtual space and thereby place it in a desired location on a regionof some displayed content or elsewhere within the virtual space. Inparticular embodiments, a user may select the comment file (e.g., with agaze input aimed at an associated icon) and view and/or listen to thecommentary. In particular embodiments, the comment files may be overlaidon any suitable content such as images, documents, webpages, andinterfaces of an online social network. In particular embodiments, thecomment files may be overlaid directly over a region of the virtualspace (e.g., a virtual desktop of the user). In particular embodiments,the comment files may be overlaid on video content. In theseembodiments, the comments may have a time element (i.e., they may have atemporal component), such that they may only appear or may only beaccessible during a specific time period. As an example and not by wayof limitation, reaction comments (e.g., a laughing face representing alaughing reaction) may appear when a comedian in a stand-up comedy videodelivers a punchline. As another example and not by way of limitation,text comments (or icons corresponding to the comments, the contents ofwhich may be displayed following a gaze input) may appear within a videodocumentary as the text comments become relevant with respect to thecontent that is being shown. As another example and not by way oflimitation, audio comments may play (or icons for the audio comments mayappear) within a video or interactive content showing a walkthrough of ahistorical site at relevant times. In particular embodiments, somereactions or comments may not have a spatial element but may have atemporal element, in which case, these reactions or comments may appearin some suitable location as their respective times occur. As an exampleand not by way of limitation, reactions corresponding to different timepoints may scroll across the bottom, top, center, etc., of a video as astream of reactions or comments as their respective times occur. In thecase of a live video, this may be a live stream of reactions orcomments. Although the disclosure focuses on placing reactions orcomments in content items (or anywhere in the virtual space, e.g., in avirtual room) using a tool, it contemplates placing reactions orcomments in any suitable manner (e.g., using an option of a dockelement, using a voice command, etc.).

FIGS. 13A-13C illustrate an example of placing a user reaction at alocation of a visual media item. FIGS. 14A-B illustrate an example of avisual media item with reactions placed in different locations. Inparticular embodiments, a user may be able to place reactions orcomments (collectively termed herein as “social-commentary items”) incontent (e.g., visual media items), a virtual room, or any virtual spacegenerally, These social-commentary items may be placed with spatialand/or temporal information specifying where and/or when in the contentthe social-commentary items are to appear. As an example and not by wayof limitation, referencing FIGS. 13A-13C, the user may place thelaughing reaction 1310 on the displayed visual media item by grabbing itfrom the menu bar 1320 and positioning it at the location in FIG. 13C.FIGS. 13A-13C illustrate this sequence of events. In particularembodiments, when a user views content, a virtual room, or any virtualspace generally, that has social-commentary items, the user may be ableto view other users' social commentary with respect to specific spots,spatial and/or temporal, in the content (or any virtual space,generally). These reactions or comments may be overlaid over the virtualenvironment (e.g., a laughing icon may appear at a spot corresponding toa laughing reaction). In particular embodiments, there may beidentifying information (e.g., a small profile picture, a name)associated with the displayed reactions or comments. As an example andnot by way of limitation, referencing FIG. 14A, the heart reaction 1420may be accompanied by the profile picture 1410 of the user (or multipleprofile pictures of multiple users) who had submitted the heart reaction1420. In this example, if there are more than a maximum number of userswho submitted the like (e.g., more users than would be optimal todisplay identifying information for), the virtual reality system mayonly display identifying information of a select number of users (e.g.,favoring social connections of the user for whom the user has a highaffinity, as may be determined by social-graph information of an onlinesocial network). In particular embodiments, the field of view displayedto a user may include “hints” or indications of nearby or upcomingreactions or comments (e.g., previously submitted by the userhimself/herself or by another user) that are not yet in the field ofview. These hints may appear in the periphery (e.g., in the direction ofthe location of the submitted reactions). As an example and not by wayof limitation, referencing FIG. 14A, the like-hint 1430 may indicatethat a like reaction exists toward the right of the current view. Inthis example, when a user shifts the view to the right, the likereaction 1450 (which may correspond to the like-hint 1430) comes intoview (along with the profile picture 1440 of the user who submitted thelike reaction 1450. Alternatively or additionally, the hints may presentsome indication (e.g., an arrow symbol) of the direction of the locationof the submitted reactions. One advantage of displaying the hints isthat they may act to direct the user's attention to interesting areas ina particular content item (e.g., temporal or spatial spots liked byother users). As an example and not by way of limitation, a user, uponviewing a 360 photo, may notice that there is a hint displayed at theright of the user's current field of view (e.g., an indication of alaughing icon with an arrow to the right). In this example, upon turningto the right (thereby shifting the field of view), the user may be ableto see the spot corresponding to the laughing icon (e.g., a depiction ofa funny cat).

In particular embodiments, the set of tools may include a portal toolthat allows the user (and/or one or more other users, e.g., other usersin a virtual room with the user) to be transported from the currentvirtual space to a different virtual space. As an example and not by wayof limitation, the user may be able to select the portal tool to exit aparticular virtual room (described elsewhere herein) and enter adifferent virtual room, a user interface for browsing visual mediaitems, a newsfeed of an online social network, a web browser, or anyother suitable virtual space.

In particular embodiments, the set of tools may include a virtual mirrortool that may allow the user to view the user's own avatar (e.g., byrendering an image of the avatar within a region of the mirror tool asthough it were a reflective item). The virtual mirror may essentiallyfunction like a mirror in the virtual space. The virtual mirror conceptmay also extend to other applications. As an example and not by way oflimitation, the virtual mirror concept may be extended to the cameratool such that a user may be able to capture an image (e.g., a “selfie”image) by, for example, picking up the virtual mirror (or a camera tool)and positioning it such that it displays the desired image. As anotherexample and not by way of limitation, the user may be able capturevideos with the mirror (or a camera tool) in the same fashion. Asanother example and not by way of limitation, the user may be able touse the virtual mirror as a means to control what other users see duringa communication session with the user, or a one-way broadcast to otherusers. In this example, the user may be able to position the virtualmirror (or camera tool) such that it captures the desired images and thevirtual reality system may stream or broadcast the images as they appearin the virtual mirror. In particular embodiments, two users in a virtualreality space may broadcast communications to a plurality of otherusers. The users may use the virtual mirror (or camera tool) as a visualaid in framing what the plurality of other users sees. In particularembodiments, the virtual mirror (or camera tool) may auto-position on aregion of the user's avatar (e.g., centering on the face or body of theavatar). As an example and not by way of limitation, the virtual mirror(or camera tool) may automatically bias toward an optimal view of theavatar. In particular embodiments, the default position may be set bythe user (e.g., center of face, center of body, etc.). In particularembodiments, the virtual mirror (or camera tool) may also smooth out theimage by reducing any shakiness that may be present from the user'shands or other input means.

In particular embodiments, the virtual reality system may introduceconcepts like reach and distance in the virtual space. The concepts ofreach and distance may be useful in making the virtual world moresimilar to the real world and making interactions in the virtual worldmore intuitive. In these embodiments, certain interactions with anobject may only be available to a user if the object is within the reachof the user's avatar. As an example and not by way of limitation, it mayonly be picked up by the user if it is within reach of a hand of theuser's avatar. The concept of reach may be conveyed by perspectiverendering of the virtual space, so that it is obvious (just as in reallife) what objects are in reach. In particular embodiments, the virtualreality system may indicate for clarity the objects that are withinreach (e.g., by highlighting them or by making them seem more opaquethan objects that are out of the user's reach). In particularembodiments, users may be able to bring an object closer to their reachby moving toward it or by using a virtual tool (e.g., a tractor-beamtool or a vacuum tool) to bring the object closer to the user. Inparticular embodiments, a particular user may ask another user who isclose to the object or content to pick it up and pass it to theparticular user. The “physical” act of handing items to other users mayhave the advantage of making for a very real, very human experience forthe user, and may help make the virtual world feel more like the realworld.

In particular embodiments, the virtual reality system may have a firstset of physics for content and a second set of physics for virtualobjects. As an example and not by way of limitation, content may floatin the virtual world, while objects may have gravity just as though theywere real-world objects.

In particular embodiments, a first user may be able to hand a tool(e.g., a premium tool purchased by the user) to a second user in avirtual space. The second user may then be able to use the tool. Inparticular embodiments, the second user may only be able to use the toolfor a period of time or within particular restrictions, after which thetool may become unavailable to the other user. As an example and not byway of limitation, the first user may hand a premium camera tool (e.g.,one that takes high-quality images or one that has a particular filter)to the second user. In this example, the second user may be restrictedto using the camera while in the same virtual space as the first user ormay only be able to use the camera for duration of ten minutes.

In particular embodiments, the tools that are rendered at a given timein a given virtual space may vary. The particular tools that arerendered may be based on a determined current context, as describedherein (e.g., as in the case of the dynamically changing reticle). As anexample and not by way of limitation, the user may only be able to viewor select tools to which the user has access (e.g., based on whether theuser's demographic, based on whether the user has paid for access in thecase of a premium tool). As another example and not by way oflimitation, certain tools may be more likely to appear in certainvirtual spaces. In this example, a pen tool may be more likely to appearin an office-themed virtual space which may be designed for study orwork. Similarly, a laser tool may be more likely to occur within agaming environment. As another example and not by way of limitation, theuser may speak an appropriate voice command (e.g., “pen tool”) and a pentool may appear (e.g., appearing to fall from the sky, appearing out ofnowhere, etc.). In particular embodiments, the particular tools that areto be rendered may be determined by scoring or ranking the differentpossible tools, as described elsewhere herein for analogous contexts(e.g., as in the case of the dynamically changing reticle).

In particular embodiments, usage of a tool may affect the availabilityof a tool, or the continued selection of the tool by a user. As anexample and not by way of limitation, after a user has used a pen toolfor a defined period of time, the pen tool may be deselected. As anotherexample and not by way of limitation, after a user has taken a definednumber of photographs on a camera tool (e.g., as may be defined by anamount of virtual “film” purchased by the user), the camera tool maybecome unavailable. As another example and not by way of limitation, ifa user is using a particular tool irresponsibly (e.g., if the user'susage of the tool has been reported by other users), the particular toolmay be made unavailable (e.g., for a period of time). For example, if auser uses a laser tool to destroy virtual objects created by anotheruser, the laser tool may be made unavailable to the user for a period oftwenty-four hours. In particular embodiments, the usage of a tool mayaffect the score or rank calculated for a tool. As an example and not byway of limitation, after a user has used a paintbrush tool for a definedperiod of time during the past 5 hours, its respective score maydecrease (e.g., because the user may have lost interest in thepaintbrush tool), and may consequently cause another tool to be morelikely to appear than the paintbrush tool (e.g., because the other toolmay have a higher score).

In particular embodiments, virtual objects (e.g., virtual tools) in avirtual space may be customized for a user. In particular embodiments,the customization of a virtual object may be based on informationassociated with the user that may be stored locally in the virtualreality system, in a database associated with the virtual realitysystem, in a database associated with an online social network, or in adatabase associated with any suitable third-party system. As an exampleand not by way of limitation, a virtual object may be customized basedon social-graph information that may be present on a social graph of anonline social network. In this example, such information may includeaffinities and preferences of the user (which may have been explicitlyspecified by the user, or inferred by the user's actions on the onlinesocial network). For example, a virtual boom box of a user may have apersonalized playlist of music (e.g., based on a music-streaming profileof the user, based on social-graph information of the user, based on aplaylist explicitly specified by the user). As another example and notby way of limitation, a virtual TV of the user may have a personalizedset of TV shows/movies (e.g., by connecting to a television subscriptionaccount of the user, by connecting to media items stored by the user inthe virtual reality system or another system associated with the usersuch as a digital video recorder in the real world, a personal computer,or a cloud platform).

In particular embodiments, the virtual reality system may render avirtual room, which may be a virtual space that allows multiple users tovirtually meet. In particular embodiments, the virtual room may havebeen “created” by a particular user, i.e., the virtual reality systemmay have rendered the virtual room in response to an input by theparticular user requesting that the virtual room be rendered. Inparticular embodiments, the virtual room may have, as a backdrop, imagesfrom a headset camera of a particular user (e.g., the user who createdthe virtual room) such that all users in the virtual room may perceivethemselves as being in the real world at the location of the particularuser. In particular embodiments, each user may see a virtual room with abackdrop formed with images from his or her own headset camera (suchthat each user sees an augmented reality based on their own individualreal world). In particular embodiments, the virtual reality system mayrender avatars of the users within the virtual room. An avatar in thevirtual room may be a customizable generated rendition of the respectiveuser. In particular embodiments, the virtual space may render avideo-representation of the user (e.g., captured from a camera directedat the respected user). In particular embodiments, the rendered avatarmay include one or more elements of the video-representation. As anexample and not by way of limitation, the face of the avatar may be aface composed from the face in the video-representation. In particularembodiments, the virtual room may be bounded by walls, such that itresembles an actual room.

In particular embodiments, an initial avatar of the user may begenerated by the virtual reality system based on one or more photos (orother image content, such as videos) of the user. As an example and notby way of limitation, the virtual reality system may automaticallyselected photos of the user from an online social network (e.g., photosthat tag the user, profile pictures of the user) or some other suitableresource (e.g., a local or cloud photo database of the user). Thevirtual reality system may attempt to select optimal pictures byfavoring certain types of pictures (e.g., pictures that were profilepictures of the user, pictures that receive a relatively large number oflikes or comments, pictures with optimal angles and details of theuser's face, etc.).

FIG. 15 illustrates an example of an avatar-customization area in avirtual space. FIGS. 16A-16G illustrate example uses of virtual tools tocustomize an avatar. In particular embodiments, a user may be able tocustomize the user's avatar. In particular embodiments, the user may beable to alter features of the avatar. Avatar alteration may be desiredin cases where the initial avatar was not rendered accurately oroptimally, at least based on the user's perception. It may also bedesired in cases were users want to make their avatar a reflection oftheir best self (which may not have been captured in photos) or theirideal self, or it may simply be an imaginative version of themselvesthat they want to create for fun. In particular embodiments, the usermay be able to select (e.g., by pointing/poking with a rendered hand ofthe user) individual features (e.g., nose, mouth, jaw line, skin color,eye color, facial hair type) on the initial avatar and alter them asdesired. As an example and not by way of limitation, the user may beable to switch out existing features for a different feature that may beselected from a group of possible features. As another example and notby way of limitation, the user may be able to alter existing featuresusing any suitable input. For example, the user may make a nose largerby poking at it to select it as a feature, then pulling it out with agesture; extend the hairline by grabbing the hair and pulling itdownward; or change eye color by picking up an eye-change tool andapplying new eyes to the avatar (at this point, the avatar's eye may getbig, anime style, to allow the user to more clearly see the eye colorthat was selected). In particular embodiments, to aid with thesechanges, the user may be presented with a virtual mirror that mirrorsthe position and movements of the user's avatar. As an example and notby way of limitation, the user may be presented with the virtual mirror1510. In this example, the user may be able to select a feature (e.g.,the mouth 1530) and modify it. In particular embodiments, the user mayadd accessories to the avatar (e.g., hats, glasses) or customize clothesworn by the avatar. In particular embodiments, the user may alter theappearance of an avatar using virtual tools, such as virtual tools thatmay be analogous to real-world grooming products. As an example and notby way of limitation, the user may be able to pick up a virtualhair-dryer tool, a virtual hair-straightener tool, a virtualcurling-iron tool, virtual hair gel, virtual makeup, virtual hair dye,virtual shaving cream, virtual beard trimmer, virtual hair clippers,virtual razor, virtual hair-growing cream (which may cause hair to grow,e.g., on the face at an accelerated pace), etc., and modify an avatarjust as in the real world. Referencing FIG. 15, the virtual tools (e.g.,the virtual hair clippers 1550) may appear at an intuitive location suchas the dressing table 1520 in front of the virtual mirror 1510. FIGS.16A-16B illustrate an example of a user using a virtual hair-dryer tool1610 to modify the hair of the user's avatar. In this example, the usermay be able to specify settings for the virtual hair-dryer, and anindication of a specified setting may appear on or near the virtualhair-dryer (e.g., the indicator 1620). The user may be able to see thechanges as they happen in the virtual mirror 1630. FIGS. 16E-16Gillustrate an example of a user using a virtual hair-growing cream 1650to modify the beard of the user's avatar. The user may apply the virtualhair-growing cream 1650 in FIG. 16F, which may result in the avatarhaving a beard in FIG. 16G. In particular embodiments, the user may beable to customize the avatar by simply enabling filters. As an exampleand not by way of limitation, referencing FIGS. 16C-16D, the user mayenable an “anime-eyes” or “googly-eyes” filter (e.g., with the filtertool 1640) that overlays large eyes on the avatar (e.g., for comediceffect), as seen in FIG. 16D. In particular embodiments, differentbuttons on a physical controller may correspond to different functionsfor changing appearance with a universal tool. As an example and not byway of limitation, the universal tool may increase hair length, curlhair, straighten hair, gel hair, dye hair, etc., depending on the inputsthe user submits via a physical controller (e.g., the buttons pushed,the gestures performed). In particular embodiments, these tools may bemanipulated with hand gestures (e.g., by moving hand controllers) tosimulate the use of the corresponding products in the real world. Inparticular embodiments, the customization of the avatar may befacilitated with a virtual mirror that may function like a mirror in thereal world, mirroring the movement and features of the user's avatar. Inparticular embodiments, the mirror may be summoned by the user at anytime or place in a virtual space, and/or may be provided to the userwhen the user enters a virtual dressing room or another personal space(e.g., when the user goes into “pause mode” as described herein). Thevirtual dressing room (or other personal space) may include tools oroptions for modifying the avatar (e.g., accessories, a virtualhair-dryer tool). As an example and not by way of limitation, a user mayenter a virtual dressing room by entering pause mode, select the nose asa feature (e.g., by pointing to the nose on the corresponding locationon the virtual mirror), and select a different nose (e.g., by selectingone out of several possible noses that may be presented to the user inresponse to the user selecting the nose). In particular embodiments,customization may not only be limited to the head or face, but may alsoinclude customization of the torso or limbs (e.g., body size, build,and/or height).

FIGS. 17A-17B illustrate example virtual magazines for customizing anavatar. In particular embodiments, to facilitate customization and/or toprovide the user with ideas for customization, the user may be presentedwith one or more virtual “magazines” (or something similar) that mayinclude various style templates or modeled styles (e.g., on different“pages” that the user may be able to flip through) similar to how afashion magazine in real life would (e.g., clothing, hairstyle,mustaches, accessories). Each style may feature one or more differentfeatures (e.g., different hairstyles, noses) or articles (e.g.,different glasses, hats), as illustrated in the example magazine 1720 inFIG. 17B. The magazines may be especially useful for users experimentingwith avatar customization—they may give users a place to start. Theremay be different magazines for different personalities, and users maypick a magazine closest to their personalities or tastes. As an exampleand not by way of limitation, referencing FIG. 17A, a variety ofdifferent magazines may be presented to the user (e.g., the “Hipster”magazine 1710, which may showcase hipster styles). The magazines may bepresent in the dressing room (or personal space). As an example and notby way of limitation, referencing FIG. 15, the magazines 1540 may appearon the dressing table 1520. The styles in magazines may be modeled onrepresentations of the user's current avatar within the magazine so thatthe user may flip through the different styles quickly to see what eachstyle would look like on the user's current. Alternatively oradditionally, the styles may be modeled on other avatars or photos ofmodels. The magazine may also display different feature sets (e.g.,different noses, eyes, chin, etc., as they could be applied to thecurrent avatar of the user to show the user the differentpossibilities). Some or all of the magazines may be either free orpurchased. The user may be able to browse through the magazines foravatar customization ideas, and may then adjust the user's avatar basedon the magazines. In particular embodiments, the user may be able tosimply select a particular style (e.g., on a page of the magazine), andthe user may immediately be able to see the changes in the user's avatarby looking at a virtual mirror (e.g., in a dressing room). The user mayselect individual items in a magazine (e.g., a pair of glasses, eyecolor), or may select an entire style (e.g., adding all features shownon a model in the magazine). If satisfied, the user may be able toaccept the changes, and have the avatar immediately customized withouthaving to do anything further. In particular embodiments, the user mayhold the magazine just as in real life, with one hand holding themagazine at the spine. In these embodiments, the user may use the otherhand to flip through the pages of the magazine (or any other suitableinput).

In particular embodiments, the virtual reality system, in rendering anavatar, may render not only a face, but also the body, and mayaccordingly need to determine where and how to position the variousparts of the body. As an example and not by way of limitation, thevirtual reality system may determine angles of different joints in thebody or the position of the limbs and/or torso. In making thesedeterminations, the virtual reality system may receive various inputsfrom the user. As an example and not by way of limitation, the virtualreality system may include a camera that may track the movement of theuser and the user's various body parts. As another example and not byway of limitation, the virtual reality system may include controllersthat may be held or secured to one or more limbs of the user (e.g., tiedto the user's feet or knees, held in or secured on the user's hands). Inparticular embodiments, the virtual reality system may make use ofinverse kinematics to continuously determine the movements, angles, andlocations of the various body parts and joints. As an example and not byway of limitation, inverse kinematics equations may define therelationships between joint angles and positions of the avatar and inputdata (e.g., data from cameras tracking the user, data from controllersdescribing the position of the user's hands and feet), and may use theserelationships to determine the locations and orientations of theavatar's joints. As another example and not by way of limitation,inverse kinematics equations may define the relationships between jointangles and positions of the avatar and a determined pose for the avatar.In this example, the pose for the avatar may be determined by the usermay be data from cameras tracking the user or data from controllers, butmay also be determined based on other factors such as contextualinformation. For example, if context dictates that the user is shrugging(e.g., as may be determined based on a conversation, based on a specificgesture that triggered a shrugging “virtual emoji”), that informs thevirtual reality machine that the avatar should be in a shrugging pose.In this case, the inverse kinematics equations may be used to determinethe locations and orientations of the avatar's joints for the shruggingpose.

In particular embodiments, the virtual room may include an “interactivesurface,” which may be a specific region in the virtual room havingspecial properties. In particular embodiments, the interactive surfacemay resemble a table, desk, or other such surface that may be visible toall users in the virtual room. In particular embodiments, theinteractive surface may afford users within the virtual room a means ofsharing in certain interactive experiences. In particular embodiments,the interactive surface may be a means for users to share content withother users in the virtual room. The content that is being shared (e.g.,a slide show, a video), may be two-dimensional or three-dimensional, andmay be flat or non-flat content (e.g., spherical content, 360-degreecontent, 180-degree content). In the case of non-flat content, the userswho are sharing in the experience may be immersed in the contenttogether (e.g., for spherical content, everyone in the room may findthemselves in a room surrounded by the spherical content and may seeeach other as avatars in the same room).

FIGS. 18A-18B illustrate an interactive surface that may be used byusers to share content or otherwise share in interactive experiences.FIG. 19 illustrates an example of a content item that is locked. FIG. 20illustrates an example of a content item representation of a contentitem that is shown to users for whom the content item is not visible. Inparticular embodiments, a user who is privately browsing or viewingcontent (e.g., an article, a visual media item, items on a newsfeed ofan online social network) while in the room, upon deciding to share thecontent with other users in the virtual room, may place a virtual objectcorresponding to the content on the interactive surface. The act ofplacing the virtual object on the interactive surface may function as an“unlock-content” input, making the corresponding content visible toother user in the virtual room. As an example and not by way oflimitation, the user may be browsing a newsfeed of an online socialnetwork and may find a video posted on the newsfeed to be interesting.In this example, the user may select and drag a virtual objectcorresponding to the video onto an interactive surface (e.g., using agaze input, “grabbing” a thumbnail of the video with a grab-typereticle, and dragging it onto the interactive surface by aiming thereticle on the interactive surface). When the virtual object is placedon the interactive surface, the content associated with the virtualobject may be visible to the users in the room or to the users who arewithin a threshold distance of the interactive surface. As an exampleand not by way of limitation, a video that is shared in this manner maybe projected on the interactive surface or near the interactive surface(e.g., adjacent to the interactive surface, resembling a movieprojections screen), or at another suitable location, for users in thevirtual room to see. In particular embodiments, a content item may notbe unlocked and visible to other users until a user having access to thecontent item places it on a particular region of the interactivesurface. As an example and not by way of limitation, referencing FIG.18A, the content item 1820 remains locked until it is placed in theregion 1830 of the interactive surface 1810. In this example, when thecontent item is placed in the region 1830, it is projected onto thescreen 1840, such that other users in the virtual room (e.g., the user“Brian”) may view it. In particular embodiments, content that a user isprivately browsing or viewing while in the room might not be visible (oraudible) to other users until the user explicitly allows for it (e.g.,by placing a virtual object corresponding to the content on theinteractive surface). In particular embodiments, the user may choose tomake particular content visible only to a subset of users, even withinthe same virtual room. In these embodiments, while the subset of usersmay be able to view the content, the other users who are not in thesubset of users may not be able to view the content. In particularembodiments, users for whom the content is not visible may only see acontent item representation, as described herein. As an example and notby way of limitation, the content item representation may be a privacyscreen that looks like a blank screen. In particular embodiments, thecontent item representation may include an indication that the contentis private or that the content is only visible to select users or agroup of users. As an example and not by way of limitation, referencingFIG. 20, in the case where a user showing private content in a room hasonly made that content visible to a particular user named Michael, thecontent item representation 2010 (which may be shown to all users otherthan the particular user Michael) may include the text “Content visibleonly to Michael.” Any suitable user interface element may be provided tothe user to enable the user to submit an “unlock-content” input, whichmay allow the user to selectively make content visible to specific otherusers (or to make it visible to other users generally). As an exampleand not by way of limitation, referencing FIG. 19, the user may beprovided with a virtual button (e.g., the virtual unlock button 1930) ormenu item that may be selected to make the content item 1920 visible toother users. In this example, the user may additionally be able tospecify particular users for whom the content will be made visible byspecifying the particular users from a drop-down menu that may appearfollowing the selection of the virtual unlock button 1930. Anotification (e.g., the notification element 1910) may be provided tothe user to indicate that the content item is not visible to otherusers. As another example and not by way of limitation, the user maysimply place the content item on an interactive surface, which may makeit visible for all other users in the virtual room, or next to theinteractive surface.

FIG. 21 illustrates an example of a user interacting with a content itemfrom the viewpoint of a user for whom the content item is not visible.User testing reveals that when a user is privately viewing content, theresulting situation may be uncomfortable or awkward (e.g., for otherusers for whom the content is not viewable). To the other users, it maylook like the user privately viewing the content is making wild orrandom gestures at the air (e.g., when interacting with the content) orsimply staring blankly into empty space. This problem may be remedied bydisplaying some type of content representation in front of the user whois viewing content (e.g., in the location where the content may beexpected to be), without any indication as to what the content actuallyis. As an example and not by way of limitation, referencing FIG. 21, theblank screen 2110 may be displayed as a content representation in frontof the user 2120. In this example, the blank screen or privacy screenmay represent the back of the content. The content representation may beopaque or transparent. The content representation may indicate userinteractions. As an example and not by way of limitation, when a userviewing a private video “touches” a blank-screen representation of avideo, the point of “contact” may be highlighted (e.g., with the ring2130 in FIG. 21) to indicate that the user is interacting with thecontent and not just pointing. The content representation may take anysuitable shape and may adjust with the content. As an example and not byway of limitation, if the user is viewing a panel of private videos,other users may see a panel of blank screens. In particular embodiments,the content representation may include an indication that the contentitem it represents is private. In particular embodiments, the contentrepresentation may further indicate the users for whom the content isvisible. As an example and not by way of limitation, to a user Thomas(e.g., a user to whom the content is not visible) it may include thetext “Content visible only to Jane and Jim” (e.g., Jane and Jim beingusers for whom the content was made visible. Although the disclosurefocuses on particular ways of making private content viewable by otherusers, it contemplates any suitable means of doing so. As an example andnot by way of limitation, a user may make the user's own private contentviewable by performing a suitable gesture (e.g., a particular swipegesture, a secret gesture), speaking a password, pressing a button(e.g., a rendered button in the virtual space or a button on a physicalcontroller), etc.

In particular embodiments, the virtual reality system may alter theinteractive surface based on a current context. The interactive surfacemay be altered in its shape, size, color, physics (e.g., texture, thespringiness of the virtual material that may, for example, allow fordifferent levels of bounce for a virtual object that is dropped on theinteractive surface), or any other suitable characteristic. As anexample and not by way of limitation, a ping pong table interactivesurface and a pool-table interactive surface may be of different shapes,sizes, colors, and physics (e.g., high-density fiber board vs. felt).The current context may be determined based on any combination of thefactors described within this disclosure (e.g., current time of day,information about one or more of the users in the room). In particularembodiments, the particular interactive surface that is to be renderedmay be determined by scoring or ranking the different possibleinteractive surface, as described elsewhere herein for analogouscontexts (e.g., as in the case of the dynamically changing reticle).

FIGS. 22A-22B illustrate an example interactive surface that is alteredbased on a tool selected by a user. In particular embodiments, thecurrent context may be based on one or more tools selected by a user. Inparticular embodiments, the interactive surface may have associated withit one or more tools, which may appear in any suitable location in thevirtual room. As an example and not by way of limitation, referencingFIG. 22A, the tools may be located within the virtual drawer 2220associated with the interactive surface 2210 (e.g., a drawer connectedto the interactive surface that the user may pull open with a gaze inputwith a headset device, a pull input with a hand-held controller asillustrated in FIG. 22A, or another suitable input). Alternatively oradditionally, the tools may have been associated with the user (e.g., atool from a tool belt of the user). In particular embodiments, one ormore of the tools may have specifications that change the one or moreproperties of the interactive surface, such that when the user picks upa relevant tool, the interactive surface may be altered according to thespecifications. Any of the tools described within this disclosure mayappear in the virtual room (e.g., pen/marker tools, paintbrush tools,laser tools, etc.). In particular embodiments, the tools may includeitems associated with specific games that may be played on theinteractive surface and that require a specific layout. As an exampleand not by way of limitation, referencing FIGS. 22A-22B, one of thetools may resemble a ping pong paddle (e.g., the ping pong paddle tool2230). In this example, when the user picks up the ping pong paddle tool(or places the ping pong paddle tool on the interactive surface 2210),the interactive surface 2210 may be altered to look like a ping pongtable (e.g., having a net and lines drawn on the interactive surfaceaccording to ping pong regulations), as illustrated in FIG. 22B with thealtered interactive surface 2240. As another example and not by way oflimitation, one of the tools may resemble a poker chip. In this example,when the user picks up the poker chip tool, the interactive surface maybe altered to look like a casino table. As another example and not byway of limitation, one of the tools may resemble a laser. In thisexample, when the user picks up the laser tool, what appears to be aprojection screen may appear on or near the interactive surface and agame may be initiated (e.g., one that includes targets that may be shotat by users in the room holding laser tools). Any suitable alterationsmay occur to accommodate different games (e.g., air hockey, pool,foosball, etc.). In particular embodiments, the interactive surface mayonly be altered if the user picks up a tool and performs some suitableaction with it. As an example and not by way of limitation, theinteractive surface may only be altered if the user places the tool onthe interactive surface or on a particular region of the interactivesurface.

FIG. 23 illustrates an example of an interactive surface that has beenaltered to become a content-browser surface. In particular embodiments,an interactive surface may be altered to facilitate content browsing andplaying (e.g., among users in a virtual room) if a user selects acontent-browser tool. As an example and not by way of limitation,referencing FIG. 23, the user may have selected the content-browser tool2310 (e.g., a content-browser tool for browsing content on thesocial-networking system 160), which may alter the surface to project amenu of content in a region of the virtual space. In this example, theuser may then use the remote-control tool 2320 to select a particularcontent item (e.g., the content item 2330). The users in the virtualroom may view the content item, add reactions or comments to the contentitem, or otherwise interact with the content item.

FIG. 24 illustrates an example of an interactive surface that has beenaltered to become a content-player surface. In particular embodiments,the current context may be based on a virtual object selected by a user.As an example and not by way of limitation, the user may select acontent item (e.g., a photo, a video). In this example, when the userselects the content item or places the content item on the interactivesurface, the interactive surface may be altered to become acontent-player surface (e.g., with a projection screen in the middlethat may be used to project the content item). As another example andnot by way of limitation, referencing FIG. 24, the content item may beprojected as though it were projected on the screen 2410 facing theinteractive surface and within view of users 2420, 2430, and 2440.Referencing FIG. 24, the virtual space may include a rendering of asuitable 360 image (e.g., an image associated with the content itemprojected on the screen 2410), for example to set the mood or otherwiseenhance the experience.

In particular embodiments, the interactive surface may be altered by avoice command. As an example and not by way of limitation, the user mayspeak the word “ping pong table,” which may cause the interactivesurface to be transformed into a ping pong table.

FIGS. 25A-25B illustrate an example of an interactive surface that isaltered based on the number of users near it. In particular embodiments,the interactive surface may be altered based on the number of users inthe virtual room or within a threshold distance of the interactivesurface. As an example and not by way of limitation, referencing FIGS.25A-25B, the rectangular interactive surface 2530 that appears whenthere are two users (e.g., users 2510 and 2520) may be altered to becomethe pentagonal interactive surface 2560 when there are four users (e.g.,users 2510, 2520, 2530, and 2540). In particular embodiments, thevirtual reality system may position or re-position avatars of users asneeded based on information associated with the interactive surface. Asan example and not by way of limitation, referencing FIGS. 25A-25B, theavatars of users 2510 and 2520 may be re-positioned from their initialpositions in FIG. 25A to their positions in FIG. 25B (e.g., toaccommodate the shape of the table). As another example and not by wayof limitation, when an interactive surface is altered to be a ping pongtable, users who were near the interactive surface may be re-positionedon opposite ends of the interactive surface (e.g., so that they can playping pong against each other). In particular embodiments, the virtualreality system may employ transition effects (e.g., a telescopingeffect) in re-positioning users.

In particular embodiments, the virtual room itself may be altered basedon a current context. As an example and not by way of limitation, on auser's birthday, the virtual room may have birthday decorations. Inparticular embodiments, the interactive surface and/or the virtual roommay be altered based on explicit inputs from a user requesting specificalterations. As an example and not by way of limitation, a user in thevirtual room may request that the users be virtually “transported” to aparticular virtual space corresponding to a particular visual media item(e.g., by accessing a portal tool and selecting a particular visualmedia item). In this example, the users in the virtual room may findthemselves in a virtual room displaying the particular visual media item(i.e., in a virtual space that plays the particular visual media item).As another example and not by way of limitation, the user may simplyaccess a suitable menu-option element while in the virtual room thataccomplishes the same result. In particular embodiments, the virtualroom may be altered by a voice command. As an example and not by way oflimitation, the user may speak the word “disco room,” which may causethe virtual room to be transformed into a disco-themed room.

In particular embodiments, there may be multiple interactive surfaces ina single virtual room. In particular embodiments, users in the virtualroom can select one or more interactive surfaces from the availableinteractive surfaces with which they want to interact and may be able toswitch among the available interactive surfaces at any point. At anygiven time, each of the interactive surfaces may have differentactivities in progress. In particular embodiments, users who are in thevirtual room, just as in real life, may look around at the differentinteractive surfaces to see the different activities in progress. Inparticular embodiments, users may only be able to hear audio from otherusers who are at the same interactive surface (e.g., conversations amongusers who are at one interactive surface may not be audible to users whoare at a different interactive surface). In particular embodiments,users in the room may be able to create a new interactive surface at anypoint to engage in a different activity with a different set of users.Alternatively, one or more of the users may simply exit the virtual roomand create a new virtual room.

In particular embodiments, the virtual reality system may placerestrictions on the users who may enter the virtual room. In particularembodiments, the virtual room may limit the number of users who may bein the virtual room. As an example and not by way of limitation, thevirtual reality system may deny access to the virtual room when itreaches twenty users. In particular embodiments, the virtual room mayrestrict certain users based on information associated with the users.As an example and not by way of limitation, the virtual room may haveprivacy settings associated with it (e.g., as specified by a user whomay have created the virtual room), such that only certain users mayhave access to it based on the privacy settings. In this example, theuser who created the virtual room may specify that only friends of theuser (e.g., first-degree connections on an online social network) mayenter the virtual room, that only certain invited users may enter thevirtual room, that only users of certain demographics or users withcertain interests may enter the virtual room, or that only users who aremembers of certain groups (e.g., members of the group named “Cat LoversClub”). As another example and not by way of limitation, the virtualroom may have a minimum age requirement of eighteen, such that usersbelow the age of eighteen are not permitted.

In particular embodiments, a user may be able to move around a virtualspace such as a virtual room, just as though it were a physical room. Asan example and not by way of limitation, the user may be able to use acontroller joystick or some other form of input (e.g., gestures, gazeinputs, buttons, walking motions performed by the user) to move from oneplace to another within the room. In particular embodiments, the usermay be able to move to pre-defined locations within the room. As anexample and not by way of limitation, the user may be able to switchpositions around a virtual surface by selecting a desired position. Inparticular embodiments, the switching of positions may be done with atransition effect like telescoping (e.g., to prevent the experience frombeing too jarring). In particular embodiments, to facilitate movingaround a virtual space, the user may be provided with the ability to, atany time, summon an aerial view of at least a portion of the virtualspace, from which the user may be able to select a location to move to.As an example and not by way of limitation, a user in a virtual room, atany point during a meeting, summon an aerial view of the room, andselect a different location. As an example and not by way of limitation,the user may select a location corresponding to any of one or more empty“seats” around an interactive surface. In this example, the user may beprevented from selecting a seat that is occupied. In particularembodiments, a transition effect may be applied in transitioning betweenthe aerial view and the ground view, or vice versa.

In particular embodiments, the virtual reality system may receive inputsfrom a controller system that may accept additional inputs from the user(i.e., inputs in addition to gaze inputs, tap inputs, or other inputsoriginating from the headset). The controller system may include one ormore controllers. The controller system may provide an additional layerof control to the user for interacting more completely with the virtualspace. In particular embodiments, the controller system may include adetection mechanism that determines the motion and/or location of one ormore of the controllers. In particular embodiments, the detectionmechanism may include a camera or other sensor that detects the locationof the one or more controllers. The camera or other sensor may bepositioned in a location remote from the controllers and/or may bepositioned on the controller. In particular embodiments, the detectionmechanism may also track the pitch, yaw, and roll of the controllers(e.g., tracking two or more infrared LED markers on each controller) todetermine its orientation in six degrees of freedom. In particularembodiments, the detection mechanism may include a motion-trackingdevice (e.g., an inertial measuring unit that continuously tracks thecontroller's position and orientation in six degrees of freedom) withineach of the controllers that may detect gestures and other types ofmotion inputs. Alternatively, the detection mechanism may employoutside-in tracking. In particular embodiments, the controllers may beheld by or otherwise affixed to the person of the user (e.g., attachedto the hands, the feet, the torso, etc.).

In particular embodiments, the user may be able to interact with thevirtual space by physically interacting with the controller system. Thecontroller system may interface with the virtual space to create anintuitive input means for the user to interact with the virtual space.In particular embodiments, the user may be able to see a rendering inthe virtual space associated with the controllers. In particularembodiments, the rendering may include a representation of the user'shands, feet, torso, or other body areas, whose locations, orientations,proportions, and/or other properties may be based on inputs from thecontrollers. As an example and not by way of limitation, the user may beable to see renderings of both hands in the virtual space, with thelocations and orientations of the hands corresponding to the locationsand orientations of the respective controllers. In particularembodiments, the renderings may function as virtual objects in thevirtual space that can cause real-time effects in the virtual space.

In particular embodiments, the user may be able to interact with virtualobjects or the virtual space generally using inputs from thecontrollers. As an example and not by way of limitation, a rendering ofthe user's hand may be able to push or pull a virtual ball in thevirtual space by correspondingly moving an associated controller (e.g.,a handheld controller) in the direction of the intended push or pullwhen the rendering is near the virtual ball. As another example and notby way of limitation, the user may be able to kick a virtual ball bycorrespondingly moving an associated controller (e.g., a controllerstrapped to a foot) in an appropriate manner. In particular embodiments,the user may be able to hold tools (e.g., tools such as the onesdescribed herein) and interact with virtual objects and the virtualspace generally with those tools. As an example and not by way oflimitation, the user may be able to pick up a ping pong paddle tool andplay ping pong with another user on an interactive surface in a virtualroom. As another example and not by way of limitation, the user may beable to hold a camera tool affixed to a rendering of the user's hand andmay take a picture of a region of the virtual space with a suitableinput. As another example and not by way of limitation, the user may beable to pull open a drawer of an interactive surface in a virtual roomto pick up one or more tools. In particular embodiments, the user may beable to interact with the virtual space using voice commands. As anexample and not by way of limitation, the user may be able to speak thewords “delete ball,” which may cause the virtual ball to disappear fromthe virtual space.

FIGS. 26A-26C illustrate example methods of interacting with the virtualspace with multiple controllers. In particular embodiments, thecontroller system may allow for a method of interaction that uses inputsfrom at least two controllers that work synergistically for certaintypes of interaction. As an example and not by way of limitation,referencing FIG. 26A, when a user has selected the marker tool 2620using a first controller associated with the rendering of the first hand2610, one or more interactive elements (e.g., the size-adjustor element2630) may be presented at a location in association with the renderingof the first hand 2610 (e.g., whenever the marker tool 2620 is held bythe first hand, or following a trigger gesture). In this example, theuser may, using a second controller associated with a rendering of asecond hand, select one or more of the interactive elements to alter thesize or color of the marker tool 2620. As another example and not by wayof limitation, referencing FIG. 26B, a first controller (e.g., held byor positioned on the left hand of the user, corresponding to therendering of the left hand 2640) may be used to perform a triggergesture (which may involve, for example, rotating the forearm of theleft hand to display the underside of the wrist), upon which the panel(or menu) of items 2650 may be displayed in the virtual space. Inparticular embodiments, the panel of items may appear in a regionassociated with the first controller such that the panel of items movesalong with the first controller. As an example and not by way oflimitation, referencing FIG. 26B, the panel of items may be positionedon the rendering of the left hand 2640 of the user, such that in thevirtual place, the panel may follow the motions of the rendering of theleft hand 2640. In particular embodiments, to make the usage of the menuof items intuitive for the user, the panel of items may appear to bepresent at a location in the virtual space that conceptually correspondsto an easily accessible region of the user's body (e.g., a rendering ofthe hand holding the first controller, a rendering of the user's torso).In particular embodiments, the menu of items that appear in the panelmay be based on a current context, such as a property of a particulartool that the user may be holding or about to hold (or otherwiseselect), information associated with the user, a property associatedwith the current virtual space, any other contextual factors describedherein, etc. As an example and not by way of limitation, if the user isholding a paintbrush tool (e.g., in association with a rendering of theuser's right hand associated with a second controller, in associationwith a reticle), the menu of items may be a menu of different colors.Similarly, the manner in which the panel of items appears may be basedon a current context. Building on the previous example and not by way oflimitation, if the user is holding a paintbrush tool, the menu ofdifferent colors may appear on a rendering of an artist's palette thatappears to be resting on a rendering of the hand associated with thefirst controller (e.g., the left hand). As another example and not byway of limitation, the virtual reality system may determine that theuser is reaching for a paintbrush tool and may pre-emptively display themenu of items associated with the paintbrush tool (including, forexample, a virtual palette of colors) in a suitable area. As anotherexample and not by way of limitation, if the user is in a virtual spaceassociated with a particular interactive game, the virtual realitysystem may determine that based on the context (as determined by aproperty associated with the virtual space), the menu of items shouldinclude one or more items related to the particular interactive game.

In particular embodiments, the second controller (e.g., held by orpositioned on the right hand of the user) may be used to select an itemamong the panel of items. As an example and not by way of limitation,the user may move, in the virtual space, a rendering of a handassociated with the second controller (e.g., referencing FIG. 26B, therendering of the right hand 2610) by correspondingly moving the secondcontroller to a desired item and select it by simply “pointing” a fingeror a tool held by the rendering of the hand associated with the secondcontroller at the desired item with the rendering of the hand (e.g., fora threshold period of time) or by pointing and then performing asuitable gesture (e.g., with the controller, with the reticle, etc.). Inthis example, the user may press a button on the associated controller(e.g., the second controller) to initiate pointing. Alternatively oradditionally, the user may simply raise a finger that was in contactwith a button on the controller such that it is no longer in contactwith the button (e.g., as may happen naturally and intuitively if theuser attempts to point in real life), the detection of which mayinitiate pointing of the corresponding rendering. Referencing FIGS.26B-26C, the user may have selected the interactive elementcorresponding to a color adjuster in FIG. 26B, which may trigger thedisplay of the color palette 2660 in FIG. 26C.

In particular embodiments, the controllers may include buttons ortouch-detection sites to provide further inputs to the virtual realitysystem. Building on the previous examples and not by way of limitation,the user may select an item in a menu of items by pointing at it andthen pushing an appropriate button. As another example and not by way oflimitation, once the user picks up a camera tool, the user may take apicture by tapping an appropriate touch-detection sites on thecontroller.

In particular embodiments, the menu of items may be caused to appear atany time in response to a suitable user input (e.g., pressing a virtualbutton or a physical button on a controller). The menu of items mayappear in any suitable location. As an example and not by way oflimitation, it may appear floating in front of the user in a particularlocation of the virtual space. As another example and not by way oflimitation, it may appear floating above a forearm or hand of the userand may be associated with that forearm or hand such that it follows themotions of the forearm or hand to remain hovering over it.

FIG. 27 illustrates an example of a user in a virtual room browsing afriend list. In particular embodiments, the virtual reality system mayallow for real-time virtual communications among users. In particularembodiments, the communications may be associated or integrated with acommunications application (e.g., a communications applicationassociated with the social-networking system 160) that has informationabout the user's friends or contacts. Users may be able to access afriend or contact list and quickly initiate communications with otherusers. As an example and not by way of limitation, referencing FIG. 27,a user may activate an interactive element associated with an onlinesocial network (e.g., the element 2710 associated with thesocial-networking system 160), which may summon a menu of contact-items(e.g., the contact item 2730 corresponding to a contact named“Stephanie”), any of which may be activate to initiate a communicationwith the corresponding contact. In particular embodiments, as describedelsewhere herein, these communications may occur within a virtual room(i.e., a virtual room may be a communication session among the userspresent in the virtual room). In these embodiments, a particular usermay join or create a virtual room, and other users may join subsequently(e.g., on their own initiative if they have the requisite permissions,or upon receiving an invite). A user in the virtual room may be able tosee avatars of other users. As an example and not by way of limitation,referencing FIG. 27, the user may be in a virtual room with two otherusers (e.g., the users “Lucy” and “Christophe”), whose avatars may bepositioned around the interactive surface 2720. The avatars may move inreal-time to reflect motions made by the respective users. As an exampleand not by way of limitation, when a user raises a right hand, theavatar of the user may correspondingly raise its hand. As anotherexample and not by way of limitation, when a user speaks, the avatar ofthe user may correspondingly move its mouth to convey that therespective user is speaking. In particular embodiments, as furtherdescribed elsewhere herein, the virtual room may allow forcommunications among the users within. The users may have microphonesthat capture audio that is then streamed to the other users in thevirtual room, allowing the users in the communication session tocommunicate among themselves. The combination of the audio with theavatar renderings (e.g., renderings that simulate body language, speech,and other motions of the user) may make for a more natural and immersiveexperience for the user, simulating a real-life conversation. Inparticular embodiments, each user may be able to choose whether or notto have the user's audio or video captured and streamed (e.g., byactivating or deactivating a “mute” button or a “camera off” button).

In particular embodiments, the users in a communication session may beable to specify the types of communication (termed “communication types”herein) from each user that are to be streamed or rendered in thevirtual space during the communication session, and the virtual realitysystem may accommodate those specifications to the extent possible. Inparticular embodiments, each user may specify what the virtual realitysystem may render or stream to the other users in the communicationsession. As an example and not by way of limitation, a particular usermay specify that only the voice of the particular user may be streamedto the other users in the communication session. As another example andnot by way of limitation, the particular user may specify that only anavatar of the particular user may be rendered for the other users in thecommunication session. In this example, the other users may be able tosee the avatar representation of the particular user and may be able toview any body language (e.g., a hand wave, a particular stance), facialexpressions, or sign language communications, but may not be able tohear audio from the particular user. As another example and not by wayof limitation, the particular user may specify that only a video of theparticular user (e.g., a video captured in real-time by a camera devicedirected at the particular user) may be streamed to the other users inthe communication session. Just as in the previous example, in thisexample, the other users may be able to see the avatar representation ofthe particular user and may be able to view any body language or signlanguage communications. As another example and not by way oflimitation, the particular user may specify that voice and video, orvoice and an avatar, or voice and an avatar and a video (e.g., the videoappearing separately, or jointly with the avatar such that the face ofthe avatar may be a video of the user's face) may be streamed and/orrendered to the other users. In particular embodiments, the particularuser may be able to specify that a first set of users in thecommunication session may receive certain types of communications whilea second set of users in the communication session may receive differenttypes of communications. As an example and not by way of limitation, theparticular user may specify that in a communication session including afriend and several strangers, only the friend may view a video and anavatar of the particular user, while the strangers may be only permittedto view an avatar of the particular user. In particular embodiments, aparticular user may also specify the types of communication to bereceived from another user in the communication session. As an exampleand not by way of limitation, the particular user may specify that acertain other user in the communication session may not send video tothe particular user. In particular embodiments, the types ofcommunication that a particular user may receive from another user inthe communication session may be the same as the types of communicationthe particular user sends to the other user. As an example and not byway of limitation, if the particular user only sends audio to the otheruser, the particular user may only receive audio from the other user. Bycontrast, in particular embodiments, the types of communication that aparticular user may receive from another user in the communicationsession may not necessarily be the same as the types of communicationthe particular user sends to the other user. As an example and not byway of limitation, if the particular user only sends audio to the otheruser, the particular user may still receive audio and video from theother user. In addition to the examples described herein, any suitablecombination of communication types may be sent and received among one ormore users in the communication session in any suitable manner (e.g., asindividually specified by each of one or more users). In particularembodiments, users may be able to change the types of communicationssent and/or received at any point in the communication session.

In particular embodiments, a communication session may be a one-waycommunication. The one-way communication can be directed at a singleother user, a group of users, or to the public generally. In particularembodiments, the user may record a communication and may save it. Inthese embodiments, the user may subsequently send the recordedcommunication to a single other user, a group of users, or to the publicgenerally. In particular embodiments, the user may also receive one-waycommunications and/or recorded communications.

In particular embodiments, these communication sessions may not belimited to a virtual room and may occur at any point. A caller-user mayinitiate a communication session with one or more callee-users bysending them a communication request. As an example and not by way oflimitation, the caller-user may be in a virtual space of a game. In thisexample, while the game is still ongoing, the caller-user may send acommunication request to one or more callee-users (e.g., socialconnections on an online social network, other users of a gaming networkassociated with the current game). Similarly, a callee-user may acceptor refuse a communication request from a caller-user at any point. As anexample and not by way of limitation, a callee-user may be watching a360 video in a virtual space when the callee-user receives acommunication request form a caller-user. The callee-user may choose toeither accept or refuse the communication request by submitting theappropriate input. In this example, from the callee-user's perspective,the callee-user may see an avatar or other representation of thecaller-user and may also see an indication asking to join a virtualspace (e.g., a virtual room, a virtual space of a game) together. If thecallee-user accepts, the avatar or other representation of thecaller-user may morph into the virtual space of the callee-user. Inparticular embodiments, a current activity of the caller-user or thecallee-users may continue uninterrupted during the communicationsession. As an example and not by way of limitation, a callee-user maybe in the middle of playing a game on the virtual reality system when acommunication request is received and accepted. In this example, whenthe callee-user accepts the communication request, one or more windowsmay appear within the game environment (e.g., on a corner of thedisplay) displaying the videos or avatars of other users part of thecommunication session. Alternatively, the videos or avatars may beseamlessly integrated into the video game environment (e.g., insertingavatars of the other users within the game environment). The game maycontinue without interruption as the callee-user communicates with theother users in the communication session.

FIG. 28 illustrates an example of a communication session in a virtualroom including a user who is not using a virtual reality system. Inparticular embodiments, a communication session may include a particularuser who may not be using a virtual reality system to communicate. As anexample and not by way of limitation, the particular user may becommunicating via a device that does not have virtual realityfunctionality (e.g., a phone without such functionality). In such cases,the virtual reality system may render in the virtual space any availableinformation that the particular user has permitted it to render. As anexample and not by way of limitation, the particular user may havepermitted the virtual reality system to stream the voice of theparticular user (e.g., captured on a phone of the particular user) inthe virtual space to the other users in the communication session. Asanother example and not by way of limitation, referencing FIG. 28, theparticular user (e.g., “Stephanie”) may have permitted the virtualreality system to stream a video or image of the particular user (e.g.,captured on a front-facing camera of the phone of the particular user).In this example, the other users in the communication session may beable to view a subregion in the display (e.g., within the window object2810) that streams the image or video of the particular user (e.g.,“Stephanie”). In this example, on the particular user's device, anassociated display screen may display a view of the virtual space (e.g.,a virtual room in which avatars of the other users in the communicationsession may be present).

In particular embodiments, the subregion may be within a window objectthat one or more of the other users in the communication session may beable to manipulate and move around within the virtual space (e.g., usinga controller input or a gaze input). As an example and not by way oflimitation, the window object may appear within a virtual room and maydisplay a video of a user who is not using a virtual reality system. Inthis example, the other users (who may be using a virtual realitysystem) may have corresponding avatars and may appear to be around aninteractive surface. The other users in this example may move the windowobject around the virtual room. In particular embodiments, moving thewindow object may adjust the perspective of the user associated with thewindow object (e.g., the user who is not using a virtual realitysystem). As an example and not by way of limitation, the window objectmay behave as though there were a camera affixed to the window objectthat streams video to the user associated with the window object, suchthat the user associated with the window object sees a region of thevirtual space that the window object faces. In this example, from theviewpoint of the user associated with the window object, this window mayfunction as a “virtual window” into the virtual space.

FIGS. 29A-29C illustrate an example of sharing and interacting withimmersive content in a virtual room. In particular embodiments, users inthe communication session can share in one or more of the interactiveexperiences described herein. As an example and not by way oflimitation, for a communication session hosted in a virtual room, theusers may be able to pick up a ping pong paddle tool and play ping pongwith each other during the communication session. As another example andnot by way of limitation, the users may be able to view a slide showpresentation, an image, or a video together. In this example, thecontent that is being watched (e.g., a slide show, a video), may betwo-dimensional or three-dimensional, and may be flat or non-flatcontent (e.g., spherical content, 360-degree content, 180-degreecontent). For example, referencing FIGS. 29A-29B, a particular user mayselect the spherical content 2910 for sharing with other users in theillustrated virtual room (e.g., with a grab input using a handcontroller of the particular user, and pulling it toward the particularuser to enlarge it as illustrated in the sequence of FIGS. 29A-29B). Inthis example, referencing FIG. 29C, the virtual space in which thespherical content 2910 may have As another example and not by way oflimitation, referencing FIG. 29C, the users may be able to pick up thecamera tool 2920 and take a picture of the virtual space. In thisexample, the camera tool may be attached to the virtual stick orextension 2930 to allow for the capturing of “selfie” images (e.g., auser may pick up the virtual stick with the camera tool, gather togetherthe avatars, windows, or other representations of the users in thecommunication session and capture a group selfie image). Thefunctionalities described in the context of the virtual mirror tool mayalso apply to the camera tool.

In particular embodiments, when a callee-user accepts a communicationfrom a caller-user, the communication may appear in the virtual space asa window (e.g., if the caller-user is not using a virtual realitysystem) or as an avatar (e.g., if the caller-user is using a virtualreality system) visible and/or audible to only the callee-user and notto any other users in the virtual space (e.g., if the callee-user is ina virtual room or elsewhere with other users in a communicationsession). Likewise, in particular embodiments, the caller-user may notbe able to see or hear anything from the other users. In particularembodiments, the callee-user may be able to make the communicationvisible and/or audible to the other users in the virtual space byperforming a suitable input (e.g., by picking up the window or avatarwith a gesture and placing the window or avatar in a particular regionof the virtual space, such as on an interactive surface). In particularembodiments, at this point, any other users in the virtual space mayalso be able to see the window or the avatar, and may be able tocommunicate with the caller-user, who may likewise be able to see andhear the other users in the virtual space. In particular embodiments,the virtual reality system may also render a window that shows thecallee-user (and/or other the other users) what the caller-user isseeing of the virtual space that the callee-user is in. This window mayfunction like the virtual mirror tool described herein.

FIGS. 30A-30B illustrate an example of the receipt of an incomingcommunication on a virtual watch. FIGS. 31A-31B illustrate anotherexample of the receipt of an incoming communication on a virtual watch.In particular embodiments, communication requests may be received via avirtual watch (or via another similar virtual device such as a virtualphone, or a wristband) that may be secured to a rendering of one of theuser's hands or otherwise associated with a body area of the user (e.g.,on a rendering of a torso, belt, or pants pocket of the user). Withinthe virtual space, the virtual watch may appear to be a watch (e.g., onethat displays the current time or other suitable information) attachedto a rendering of the user's hand such that the user may be able to lookat the virtual watch at any point by bringing the rendering of the handinto the display region (e.g., by aiming the user's head toward theuser's hand, by raising an associated controller to be in the user'sline of sight in the virtual space, etc.). Receiving a communicationrequest in such a manner may be conceptually intuitive to the user. Inparticular embodiments, when the user receives a communication request,the user may be notified in a suitable manner to check the virtualwatch. As an example and not by way of limitation, a notification mayappear on a heads up display, prompting the user to check the virtualwatch. As another example and not by way of limitation, a controllerassociated with a hand that virtually “wears” the watch (e.g., acontroller held by or strapped to the user's left hand) may vibrate,prompting the user to check the virtual watch. In particularembodiments, the user may check the virtual watch by raising theassociated controller to the field of the view of the user, therebycausing the display of a rendering of the hand and the watch. Inparticular embodiments, displayed on or adjacent to the watch may bemenu-option elements for accepting or refusing the communicationsession. As an example and not by way of limitation, referencing FIG.30A, when a user raises a controller associated with a rendered handwearing the virtual watch 3010, one or more notification elements may bepresented in association with the virtual watch. In this example, thesenotification elements may include the image element 3030 (e.g., aprofile picture/video of the user who is sending the communicationrequest, a live-streaming video or other representation of the user whois sending the communication request, etc.) and the text-notificationelement 3030. In this example, along with the notification elements, the“Decline” interactive element 3040 and the “Accept” interactive element3050 may be presented to allow the user associated with the virtualwatch to either decline or accept the communication request. Inparticular embodiments, any suitable relevant menu-option elements maybe displayed to facilitate communication, such as an element to send atext communication (e.g., a text communication that reads, “I can't talkright now”) or an element to adjust one or more settings. In particularembodiments, if a user chooses to accept a communication request, acommunication session may be initiated. If the user who requested thecommunication is using a virtual reality system, an avatar of that usermay be rendered in the virtual space along with the user who acceptedthe communication request. If the user who requested the communicationis not using a virtual reality system, but is using a device with video(or audio) capability, the communication session may be in the form of avideo stream (or audio stream). As an example and not by way oflimitation, referencing FIG. 30B, the user who requested thecommunication (e.g., the user “Prinda”) may be using a phone (or anothernon-virtual reality device with video and audio capabilities), in whichcase a video stream of the user who requested the communication (e.g.,the user “Prinda”) may be displayed in the window object 3060. In thisexample a representation of what is being transmitted to the user whorequested the communication (e.g., the user “Prinda”) may be displayedin the window object 3070. FIGS. 31A-31B illustrate a similar sequenceof events as in FIGS. 30A-30B, with a slightly different interface.

The user may select a desired element (e.g., on a virtual watch) usingany suitable input, such as the ones described herein. As an example andnot by way of limitation, the user may aim a reticle at the desiredelement for a threshold period of time. As another example and not byway of limitation, the user may press an appropriate button on acontroller. As another example and not by way of limitation, the usermay bring a rendering of the user's other hand (i.e., the hand that isnot “wearing” the virtual watch) and select the desired element bypointing at it for a threshold period of time or by pointing at it andpressing a button on a controller associated with the other hand. Inparticular embodiments, when the user chooses the element for acceptinga communication session, other elements may appear that allow the userto specify the types of communication that are to be streamed orrendered to the other users in the communication session and the typesof communication that are to be received. As an example and not by wayof limitation, the user may wish to reduce bandwidth and may opt to notreceive video streams.

FIG. 32 illustrates an example of the receipt of a text communication ona virtual watch. In particular embodiments, the virtual watch may be agateway for receiving text communications from other users. As anexample and not by way of limitation, referencing FIG. 32, a user mayreceive a text message within the text notification element 3210. Inthis example, the user who received the text message may initiate acommunication request with the user who sent the text message (e.g., theuser “Prinda”) by selecting the interactive element 3220, submit asuggested text message reply (e.g., by selecting the interactive element3230, which is currently suggesting replying with a thumbs-up emoji), orcompose a message to send back (e.g., a text message, an audio message,a video message, etc.).

FIG. 33 illustrates an example of the receipt of a live broadcastcommunication on a virtual watch. In particular embodiments, a livebroadcast transmitted by a broadcasting user may be sent to a recipientuser while the recipient user is in a virtual space. As an example andnot by way of limitation, referencing FIG. 33, the recipient user mayreceive one or more notification elements indicating a broadcast. Forexample, the recipient user may receive the image element 3340 (e.g.,which may be a single image frame of the broadcast, a silent video ofthe broadcast, a low-quality version of the broadcast, etc.) and themessage notification 3310 (e.g., including a message from the user thatdescribes, discusses, or is otherwise related to the broadcast). In thisexample, the user may choose to submit a reaction (e.g., by selectingthe “like” button 3320), watch the broadcast (e.g., by selecting the“watch” button 3330), or clear all notifications about the broadcast(e.g., by selecting the “clear” button 3340). The live broadcast mayeither have been targeted at the recipient user (or a group of users,including the recipient user) or may have been pushed to all contacts ofthe broadcasting user. Although the disclosure of the concepts abovefocus on a virtual watch, it is contemplated that the same conceptscould be applied in any other suitable manner (e.g., with a differenttype of virtual tool, or without any specific tool).

In particular embodiments, as mentioned elsewhere herein, the virtualreality system may render facial expressions and body language on a useravatar (e.g., during a conversation with another user, in recording avideo/photo message with the avatar). Expressions and body language mayenhance communications with other users by providing verbal cues andcontext and by making the conversation appear more natural (e.g., usersmay want other users to react with expressions as they would in reallife). In particular embodiments, the virtual reality system may alsosimulate mouth movements (and movements in the rest of face, which maymorph with the mouth movements) while the user corresponding to theavatar is speaking to make it appear like the words are coming out ofthe avatar's mouth. In doing so, the virtual reality system may use anycombination of a series of different techniques. As an example and notby way of limitation, the virtual reality system may use a camera thattracks the movement of the user's mouth region and may makecorresponding changes on the user's avatar. As another example and notby way of limitation, the virtual reality system may make use of visemesor other similar approximations that correspond to speech (e.g., speechphonemes) to render, in real time, movements on the avatar's face toreflect what the user is saying. In particular embodiments, the virtualreality system may also track the user's eyes (e.g., using one or morecameras in a headset) to determine the direction of the user's gaze andthe corresponding location and angle of the user's pupils within theuser's eyes. The virtual reality system may accordingly render the eyesof the avatar to reflect the user's gaze. Having the avatar's eyesreflect the user's gaze may make for a more natural and fluidconversation, because much nonverbal communication may occur through theeyes. As an example and not by way of limitation, users may gaze in adirection to indicate a point of interest or to show what it is thatthey are looking at, roll their eyes to express exasperation orimpatience. Having the avatar's eyes reflect the user's gaze may alsohelp make conversation more natural, because perceived eye contact withan avatar may make the user feel more connected to the usercorresponding to the avatar. In particular embodiments, additionaloptions may become available to a user based on the determined eye gaze.As an example and not by way of limitation, when two users make eyecontact, an option to shake hands, fist-bump, or high-five may appear.As another example and not by way of limitation, when a user's eye isdetermined to be looking at a particular object, options that arespecific to that object may appear (e.g., for interacting with theobject).

In particular embodiments, users may be able to further expressthemselves by causing their avatars to emote using “avatar emojis,”which may be characterized as particular pre-defined poses, gestures, orother displays associated with an avatar that may correspond toparticular emotions or concepts. Conveying emotions using avatar emojismay assist in communication among users and/or may make avatars appearmore realistic or natural (e.g., in conversation, in a video). Inparticular embodiments, a user may cause an avatar (e.g., the user's ownavatar) to perform an avatar emoji by submitting a trigger input (e.g.,by performing a gesture with the user's hands or feet, by pressing abutton in the virtual world or on a controller in the real world, by avoice command). In particular embodiments, upon detecting the triggerinput, the virtual reality system may determine one or morecorresponding avatar emojis, and may select an optimal avatar emoji todisplay. As an example and not by way of limitation, if the user raiseshis or her hands (in real life) above the head, that may trigger anavatar emoji for excitement (which may not only cause the avatar toraise its hands excitedly but may also translate to appropriate facialexpressions of excitement on the avatar). As another example and not byway of limitation, if the user drops his or hands on the sides and turnsthem over, that may trigger an avatar emoji for confusion. As anotherexample and not by way of limitation, if the user drops his or her handsand shakes closed fists on either side of the hips, that may trigger anavatar emoji for anger. As another example and not by way of limitation,if the user raises both hands to the cheeks, that may trigger an avataremoji for surprise. In particular embodiments, the avatar emojis may notnecessarily be natural gestures, but may still be somehow associatedwith an avatar to convey some communicative concept. As an example andnot by way of limitation, when a particular user presses a particularvirtual button (e.g., a button that hovers over a palette of possibleavatar emojis), a light bulb may appear over the user's head, which maycommunicate to other users that the particular user has an idea.

In particular embodiments, the virtual reality system may determineavatar emojis further based on contextual information that it maycollect. As an example and not by way of limitation, for a user'savatar, the contextual information may be based on information about theuser (e.g., demographic information; historical usage of avatar emojisor emojis in other contexts such as text messages, posts on an onlinesocial network, etc.). As another example and not by way of limitation,the contextual information may include the substance of a conversation(e.g., if the conversation was a serious conversation, the virtualreality system may not favor the determination of avatar emojis that maybe perceived as flippant, silly, or may otherwise be perceived as beinginsensitive. As another example and not by way of limitation, thecontextual information may include a tone of a conversation (e.g., asdetermined by the voices of the users in the conversation). In thisexample, if users are in a heated conversation with raised voices,avatar emojis reflecting anger may be favored. As another example andnot by way of limitation, the contextual information may include otherforms of vocal expression such as laughter. In this example, if thevirtual reality system detects that a user is laughing, the virtualreality system may determine an avatar emoji corresponding to laughterfor the user's avatar (e.g., causing it to appear as though the avatarwere laughing. As another example and not by way of limitation, thecontextual information may include characteristics of a virtual roomand/or of the users in view (e.g., users in a virtual room). As anexample and not by way of limitation, if the virtual room was createdfor purposes of a business meeting, avatar emojis that are “not safe forwork” may not be favored. As another example and not by way oflimitation, the virtual reality system may determine avatar emojis basedon demographic, occupational, educational or other suitablecharacteristics of the users in view. In this example, certain avataremojis may be more popular among certain age groups or geographicalareas and the virtual reality system may account for those popularitiesin determining an avatar emoji.

In particular embodiments, the available avatar emojis may berestricted. As an example and not by way of limitation, there may be agerestrictions on the virtual emojis (e.g., preventing users who are belowa threshold age from using certain emojis). As another example and notby way of limitation, certain avatar emojis may only be available afterpurchase.

In particular embodiments, avatar emojis may be customizable. As anexample and not by way of limitation, a user may be able to tweak theexpressions of particular avatar emojis (e.g., adjusting the degree of asmile, adding/removing tear drops on an avatar emoji corresponding tosadness). In particular embodiments, the virtual reality system mayautomatically customize avatar emojis for the user. As an example andnot by way of limitation, the virtual reality system may base itscustomization on photos or videos of the user to adjust features likesmiles or frowns on an avatar emoji based on the features on the photosor videos of the user.

In particular embodiments, the virtual reality system may employ aseries of techniques to bring avatars out of the uncanny valley, to makeusers more comfortable interacting with other users' avatars. As anexample and not by way of limitation, special line arts may be adoptedfor avatar mouths to make them less eerie to users. In particularembodiments, the virtual reality system may add secondary motion oranimation to avatars to make them more lifelike. Secondary motion is ananimation concept that may be described as movements occurring as areaction to a primary motion by an actor (e.g., an avatar). It may serveto enhance an avatar's motion via effects that appear to be driven bythe motion, and may thereby cause the avatar's movements to appear morenatural. As an example and not by way of limitation, as an avatar walksfrom one location to another, its primary motion of walking with thelegs may be enhanced by secondary motions of the head bobbing up anddown, arms swinging back and forth, clothes moving with the torso, bodyjiggling in response, etc. In particular embodiments, the virtualreality system may also add passive motions such as body-sway motion toavatars, even when they avatar is standing still. Body sway refers tothe minor movements the body makes in real life (e.g., for posturalstability). These movements may be very subtle (e.g., an inch or two ineach direction), but their absence may be noticeable. Adding body-swaymotions may make for more realistic avatars.

In particular embodiments, the virtual reality system may render avatareyes in 2D or 3D. In particular embodiments, 3D eyes may have theadvantage of being more realistic. However, they may be more resourceintensive to render. As such, it may be technically advantageous torender 2D eyes, particularly when dealing with a large number of userscommunicating using the virtual reality system. Additionally, inparticular embodiments, 2D eyes may seem friendlier than 3D eyes, andmay be more “charming” or endearing to users.

In particular embodiments, the user may have multiple virtual devices inthe virtual space. Each of these virtual devices may offer differentfunctionality. The user may associate each virtual device with differentfunctionality, which may be advantageous in that it may allow for anintuitive experience that may correspond with the real world (e.g.,where users similarly interact with different devices for differentfunctionality). As an example and not by way of limitation, the user maywear a watch that may display the time, act as a gateway to incoming andoutgoing communications (e.g., voice/video calls, messages), providecontext-specific functionality (e.g., based on a tool that is being heldby the user, based on a type of virtual space that the user is in), ordisplay information connected to the real world (e.g., news, weather,etc.). In this example, the user may also wear a wristband that mayprovide notifications about new user experiences or features that theuser may not be aware of (e.g., a notification that a particular toolcan be used in a particular way to perform a particular function, anotification about a feature associated with a particular virtual room).The new user experience for which a notification may be provided may beidentified based on information associated with the user. As an exampleand not by way of limitation, a user who has never used a particularfeature, or a user who is determined to not possess a pre-determinedexperience level with the feature (as determined based on, for example,the user not having used the particular feature a threshold number oftimes), may receive a notification regarding that feature as a new userexperience, while a user who is more familiar with that feature may notreceive such a notification. The new user experience for which anotification may be provided may be identified based on a currentcontext. As an example and not by way of limitation, when a user picksup a camera tool, the user may receive a notification about adding afilter to modify a virtual lens of the camera tool (and thereby modifypictures taken with the camera tool). For example, a user-interfaceelement may be displayed on the wristband, and the activation of thiselement may trigger a display of information (e.g., in the form of text,a video, a photo, audio) that describes how to add filters. As anotherexample, the information may be displayed in association with thewristband without any further user input (e.g., by way of scrolling texton the wristband, by way of a projection of a video from the wristband).In particular embodiments, the wristband may include a button to enter“pause mode” (which is a state that is described in further detailherein). The functionality described herein is not intended to belimited to particular virtual devices. As an example and not by way oflimitation, the wristband may be a gateway to communications (e.g.,providing notifications of incoming calls).

In particular embodiments, the virtual devices may be customizable, suchthat the user may be able to tailor the virtual devices according topersonal tastes or needs (e.g., changing appearance, functionality). Inparticular embodiments, the user may be able to purchase or otherwiseacquire different virtual devices or add-ons to virtual devices. As anexample and not by way of limitation, the user may be able to purchasedifferent types of watches or wristbands that may appear different(e.g., designer brand wristbands or watches) or may perform specificfunctions (e.g., a watch that collects and displays stock exchangeinformation, a wristband that displays the user's heart rate or otherphysiological parameters).

In particular embodiments, when a callee-user accepts a communicationfrom a caller-user via the virtual watch (or another similar virtualdevice), the communication may appear in the virtual space as a windowor as an avatar attached or otherwise associated with the virtual watch.As an example and not by way of limitation, the communication may appearas a projection emanating from the virtual watch. In particularembodiments, at this point, the window or avatar may not by visibleand/or audible to any other users in the virtual space (e.g., if thecallee-user is in a virtual room or elsewhere with other users in acommunication session). Likewise, in particular embodiments, thecaller-user may not be able to see or hear anything from the otherusers. In particular embodiments, the callee-user may be able to detachthe window or avatar from the virtual watch and move it into the virtualspace (e.g., by picking up the window or avatar with a gesture from theother hand and placing the window or avatar in a region of the virtualspace detached from the virtual watch). In particular embodiments, atthis point, any other users in the virtual space may also be able to seethe window or the avatar, and may be able to communicate with thecaller-user, who may likewise be able to see and hear the other users inthe virtual space. In particular embodiments, the virtual reality systemmay also render a window that shows the callee-user (and/or other theother users) what the caller-user is seeing of the virtual space thatthe callee-user is in. In particular embodiments, the virtual watch mayalso be used to initiate calls. As an example and not by way oflimitation, a user may be in the middle of a game and may, while stillin the game, raise a controller associated with the watch and send acommunication request without interrupting the gameplay.

In particular embodiments, the virtual watch (or another similar virtualdevice like a wristband) may include a functionality similar to theportal tool described herein. As an example and not by way oflimitation, the user may be able to select a menu-item element on thevirtual watch to access a newsfeed, a page of one or more visual mediaitems (e.g., saved visual media items), a game, or any other suitablecontent. In particular embodiments, the virtual watch (or anothersimilar virtual device like a wristband) may offer a contextual menusimilar to a right-click button on a personal computer. As furtherdescribed herein, the options in the contextual menu may depend on thecontext (e.g., the objects the user is holding, the virtual room theuser is in, the date, etc.). In particular embodiments, the user may beable to transport other users to the selected content. As an example andnot by way of limitation, a particular user may be in a virtual roomwith two other users when the particular user selects a visual mediaitem of an underwater scene. All the users in the virtual room may betransported to a virtual space displaying the underwater scene and mayinteract with the virtual space just like any other virtual space (e.g.,taking pictures of the virtual space with a camera tool). In particularembodiments, a virtual watch, a virtual wristband, a portal tool, orother similar virtual object/tool (or a dock element as described below)may be able to transport a user to a central/default location (e.g., ahome screen). As an example and not by way of limitation, the user maypress a virtual button appears on a virtual watch or wristband toimmediately be transported to a home screen, from which the user canaccess applications, content, browsers, etc.

FIGS. 34A-34B illustrate example dock-element interfaces. In particularembodiments, similar functionality may be provided by a dock element,which may be a user interface element that offers a menu of differentoptions for interacting with the virtual space or with content in thevirtual space, or for otherwise controlling the user experience in thevirtual space (e.g., presented as interactive buttons). In particularembodiments, a user may navigate through a menu on the dock elementusing gesture inputs generally, or by manipulating a scrubber on ascrubber element (e.g., using a gaze input with a headset device, a grabinput with a controller) or any other suitable interface. In particularembodiments, the options may vary according to a current context. As anexample and not by way of limitation, referencing FIG. 34A, when theuser is on a home screen the dock element 3410 may display home-screencontrols (e.g., the interactive element 3420 to access media contentitems, the interactive element 3430 to access virtual tools, theinteractive element 3440 to search for and communicate with friends, aninteractive element to access settings, an interactive element to accessa dressing room or personal space, etc.). As another example and not byway of limitation, referencing FIG. 34B, when the user is viewing avideo, the dock element 3450 may display video controls (e.g., theinteractive element 3460 to pause the video, the interactive element3470 to decrease the volume, the interactive element 3480 to increasevolume, the interactive element 3490 to delete the video, interactiveelements to fast forward or rewind the video, a scrubber control to skipthrough the video, an interactive element for sharing the video, aninteractive element to maximize the video to encompass a bigger area ofthe field of view, an interactive element to exit the video and returnto a home screen, etc.). As another example and not by way oflimitation, when the user is viewing a photo, the dock element maydisplay photo controls (e.g., filter or other editing tools, an optionto share, an option to maximize the video to encompass a bigger area ofthe field of view, an option to exit the video and return to a homescreen). As another example and not by way of limitation, when the useris browsing content online (e.g., webpages), the dock element maydisplay browser controls (e.g., previous page, bookmarks, history). Asanother example and not by way of limitation, the dock element mayprovide display settings (e.g., brightness level) or other settingsaffecting user experience. In particular embodiments, the dock elementmay resemble a tablet or a panel. In particular embodiments, the dockelement may appear at a particular area of the user's field of view(e.g., in the bottom left of the field of view, regardless of thedirection in which the user is looking) or a particular area of thevirtual space (e.g., appearing as the dock element 2140 on theinteractive surface 2150 in FIG. 21D or another suitable location in thevirtual space, appearing when the user looks toward a particulardirection in the virtual space with respect to a point of reference). Inparticular embodiments, the dock element may be portrayed as hoveringover an area. In particular embodiments, the dock element may beinvisible or not present at times—e.g., this may be a “dormant state”(or a “de-activated state”), as opposed to an “active state.” As anexample and not by way of limitation, the dock element may remaininvisible or not present until the virtual reality system determinesthat the user intends to interact with the dock options on the dockelement (or is likely to interact with it, if presented with the dockelement). In this example, the virtual reality system may make thisdetermination based on a suitable user input (e.g., a gesture with acontroller or hand, a gaze input of the user, a tap on the headset, apush of a button on a controller). Once this determination is made, thedock element may appear. In particular embodiments, rather than beingcompletely invisible or not present, the dock element may remain presentbut may be more transparent or translucent than in its active state.Alternatively, the dock element may simply always be present in itsactive state. In particular embodiments, the dock element may appear tosurround the user's field of view, for example, with options beingpresented on the periphery or otherwise overlaid on the field of view(e.g., in the center). This may be similar to a heads-up display. As anexample and not by way of limitation, when the user is watching a video,the dock element may appear (e.g., in a dormant state until the virtualreality system determines that the user may intend to interact with thedock element) with options being presented below and on the right- orleft-hand side of the field of view. In particular embodiments, the dockelement may surround a location on the virtual space that is displayinga content item (e.g., a video). As an example and not by way oflimitation, the user may be watching a video on a virtual “television”and the dock element may present options on the edges of the virtualtelevision's screen.

In particular embodiments, the dock element may be used to initiate acommunication. As an example and not by way of limitation, using thedock element, a user may be able to pull up an interface that includes afriend list or contact list (e.g., by selecting a suitable virtualbutton on the dock element or by submitting any other suitable input).In this example, the user may be able to scroll through the list andselect one or more friends or contacts (e.g., to initiate a video,audio, or text communication such as a message or a text chat). In thisexample, the friend list or contact list may be friends or contacts onan online social network (e.g., social graph connections).

In particular embodiments, a virtual watch may act as a central hub foruser interaction. In particular embodiments, the user may be able topull up the virtual watch in any virtual space (e.g., by raising a handassociated with the watch into the user's field of view). The virtualwatch may allow for customized interaction and functionality in thevirtual space, depending on a determined current context (which may bedetermined using any combination of the factors described herein). Inparticular embodiments, the customized interactions and functionalityprovided by the virtual watch may depend on a virtual tool or anothervirtual object that is currently picked up or otherwise selected by theuser. In this way the virtual watch may be customized based onproperties of a virtual tool or other virtual object. As an example andnot by way of limitation, if the user picks up a laser tool, the watchmay be customized to display a current power level of the laser tooland/or allow the user to select different levels of power for the lasertool. As another example and not by way of limitation, if the user picksup a marker tool, the watch may be customized to display a current inkcolor of the marker and/or allow the user to select different ink color.As another example and not by way of limitation, if the user picks up avirtual ball, the watch may display a weight or other propertyassociated with the virtual ball. In particular embodiments, the virtualwatch may be a means for the user to change the virtual environment(e.g., the virtual space itself and/or virtual objects in the virtualspace). As an example and not by way of limitation, the user may be ableto pick up a virtual ball, select a “delete” button on the virtualwatch, and thereby cause the virtual ball to disappear from the virtualspace.

In particular embodiments, a particular user may be able to, at any timeor place in a virtual space, enter into a “pause mode,” where thevirtual experience may essentially be paused or put on hold. Usertesting has determined that sometimes, users may want to quickly removethemselves temporarily from the virtual experience and feel “unplugged”for a period. As an example and not by way of limitation, users may findthemselves in uncomfortable social situations that they may want to atleast temporarily escape from. As another example and not by way oflimitation, users may find an experience overwhelming or frightening(e.g., when viewing a rollercoaster video, when playing a game thatsimulates climbing tall mountains).

FIGS. 35A-35B illustrate example inputs for entering pause mode. Inparticular embodiments, the particular user may be able to enter pausemode by submitting a suitable input. As an example and not by way oflimitation, referencing FIGS. 35A-35B, the particular user may be ableto enter pause mode by performing a “safety gesture” (e.g., a gestureperformed by crossing both arms resulting in the left hand representedby the rendering 3530 to be on the right side of the user and the righthand represented by 3540 to be on the left side of the user), selectingan appropriate interactive element (e.g., the pause button 3560 on thevirtual wristband 3570 or on a watch, a button on a dock element, abutton at some location in the virtual space, a button on a physicalcontroller in the real world), speaking a particular word, etc. In thisexample, the notification 3550 may be presented to the user indicatingthat the user is going to enter pause mode. The notification 3550 mayinclude a timer element that initiates a countdown period, during whichthe user may be able to cancel entry into pause mode (e.g., byuncrossing the user's arms). The particular user may be able to exitpause mode at any time by performing any suitable input. As an exampleand not by way of limitation, the particular user may perform a gesture(e.g., a thumbs-up gesture), select an appropriate interactive element(e.g., a pause button on a virtual wristband or watch, a button on adock element, a button at some location in the virtual space, a buttonon a physical controller), speak a particular word, etc. In particularembodiments, the particular user may be able to opt to only “unpause”with respect to a subset of the other users. In the embodiments, to theother users who are not in the subset, the particular user may remainpaused, but to the other users in the subset, the user may be unpaused(e.g., they may be able to see the avatar of the particular user asnormal, they may be able to interact or communicate with the particularuser as normal). The user may be able to submit any suitable input asdescribed herein (e.g., gestures, pressing buttons, speaking a word) toaccomplish this selective unpausing. As an example and not by way oflimitation, the user may perform a handshake or “fist-bump” gesture(e.g., by reaching out a hand toward another user, at which point theother user may see the particular user and return the handshake orfist-bump) or a tapping or pointing gesture (e.g., by tapping on theshoulder of another user, pointing to the other user in a particularmanner).

FIG. 35C illustrates an example pause-mode interface. Once a particularuser enters pause mode, other users (e.g., other users in a virtual roomthat the particular user was in before entering pause mode) may beprevented from getting any information about the particular user. Inparticular embodiments, the particular user's avatar may disappear fromthe point of view of the other users. In particular embodiments, theparticular user's avatar may remain, but may be in a state that does notprovide additional information about the particular user (or at most mayonly provide limited information about the user). As an example and notby way of limitation, the other users may see a frozen, blurry, faded,distorted, or other such image of the particular user. This may indicateto the other users that the particular user is in pause mode orotherwise indisposed (e.g., due to a connection problem). In particularembodiments, when the particular user enters pause mode, the particularuser may not get additional information, or may at most get limitedinformation, from the virtual space and other users in the virtualspace. As an example and not by way of limitation, the entire virtualspace or content (e.g., content that was being presented in the virtualspace) may become disappear or become frozen, blurry, faded, distorted,etc. As another example and not by way of limitation, the virtual spacemay remain as it was, but some or all information from the other usersmay be prevented from reaching the particular user. For example, avatarsof the other users may disappear or become frozen, blurry, faded,distorted, etc. In particular embodiments, the user may be transportedto a personal space. The personal space may resemble a room that theparticular user is comfortable with. In particular embodiments, thepersonal space may be customized or customizable. As an example and notby way of limitation, the personal space may be a room that a user candecorate according to personal tastes (e.g., adding custom couches,armchairs, a fireplace, windows, etc.). In particular embodiments, thepersonal space may include a mirror with which the particular user maybe able to see himself/herself. As an example and not by way oflimitation, referencing FIG. 35C, the particular user may be presentedwith the virtual mirror 3580 when in pause mode. As described furtherherein, in the personal space, the user may be able to alter the user'sappearance (e.g., put on glasses or a hat). The use of pause mode maynot be restricted to times when the user wants to remove himself orherself from an experience. As an example and not by way of limitation,a user may enter pause mode to look at notifications (e.g., messages,notifications about new user features or new user experiences that theuser may be interested in engaging in within the virtual space, etc.) orcontent privately, entering different applications, tweaking the user'savatar or settings, and/or transitioning between virtual spaces orlocations within virtual spaces.

In particular embodiments, once in pause mode, the user may be presentedwith one or more experience-control options. As an example and not byway of limitation, the user may be given the option to report issues(e.g., technical issues, abuse by other users), block other users, kickout other users (e.g., from a virtual room). In particular embodiments,these experience-control options may be summoned at any time and a usermay not need to first enter pause mode.

In particular embodiments, the virtual reality system may create a“bubble” around user avatars, e.g., to prevent other user avatars fromgetting too close and violating a user's personal space in the virtualworld. Just as in the real world, a user may find it uncomfortable inthe virtual world if other user avatars get too close to the user. Inparticular embodiments, a user may choose to turn on or off the bubble.

FIGS. 36A-36C illustrate an example in which an opaque display regioncompletes a 360-degree perspective. In particular embodiments, a portionof the 360-degree perspective rendered by the virtual reality system maydisplay items that are external to a current virtual environment (e.g.,an environment provided by visual information of a content item, anenvironment provided by visual information of a live video stream of auser). The portion may be a display area that may be an opaque region.Alternatively, it may simply be an overlay (e.g., overlaying items overthe virtual environment) or a modification of the virtual environment.As an example and not by way of limitation, referencing FIG. 36A, the360-degree perspective 3610 may include the opaque region 3620. Inparticular embodiments, the display area may display content items(e.g., slides, photos), a web browser, an interface of a content browser(e.g., a home screen for navigating to particular content), an interfaceto search for and communicate with other users (e.g., friends, users ofan online social network), an interface of an online social network(e.g., an online social network associated with the social-networkingsystem 160), incoming video from other users (e.g., incoming video fromusers who may not be in virtual reality but may be calling in via anon-virtual-reality system such as a phone or laptop with a camera). Asan example and not by way of limitation, a user may be able to pull upan interface that includes a friend list or contact list. In thisexample, the user may be able to scroll through the list and select oneor more friends or contacts (e.g., to initiate a video, audio, or textcommunication such as a message or a text chat). In this example, thefriend list or contact list may be friends or contacts on an onlinesocial network (e.g., social graph connections). In particularembodiments, the user may choose to turn on or off the display area. Inparticular embodiments, the display area may be automatically turned onin instances where there is not sufficient information to render a fullspherical view. In such instances, the display area may be particularlyadvantageous in that it may provide useful information or points ofinteraction for the user in an area that otherwise may not have beenused to display anything of use. As an example and not by way oflimitation, if a particular user is communicating with another user whois transmitting video with a 180-degree camera, at least a portion theremainder of the view from the perspective of the particular user may betaken up by the display area (e.g., because there is no information fromthe other user for that portion). In this example, the particular usermay see the 180-degree video being transmitted by other user, and in thedisplay area may see other items such as browser window. In particularembodiments, display area may include video from other users (e.g.,windows displaying incoming video from users who may be calling in via anon-virtual-reality system such as a phone or laptop with a camera). Asan example and not by way of limitation, referencing FIGS. 36A-36B, theopaque region 3620 may include the video stream 3630 from a user (e.g.,“Hannah”) who is part of a current communication session. In thisexample, FIG. 36C illustrates video streams from additional users thatmay become visible (e.g., as the user keeps turning toward the opaqueregion 3620). The described portion of the view may be presented when avideo that is being viewed (e.g., a video content item, an incomingvideo from another user in a communication) is not fully spherical(e.g., in the case of a 180-degree camera), or it may even be presentedotherwise (e.g., as a transparent overlay on a portion of even aspherical view).

FIGS. 37A-37B illustrate example virtual signs for presentingnotifications in a virtual room. FIG. 38 illustrates an alternativevirtual sign for presenting notifications in a virtual room. Inparticular embodiments, a virtual space may include a virtual sign(e.g., a banner element) that may present relevant notifications tousers in the virtual space. As an example and not by way of limitation,the virtual sign may identify a user who just joined a meeting (e.g., ina virtual room) or started viewing a video that is being viewed by usersin a virtual room. As another example and not by way of limitation, thevirtual sign may display comments or reactions as they occur (e.g., in avideo). As an example and not by way of limitation, referencing FIG.37A, virtual signs may appear along the sides of the video 3710, whichmay be a live video that is being viewed by users in the depictedvirtual room. In this example, there may be two vertically scrollingvirtual sign that display elements such as reactions (e.g., the“laughing” reaction 3720) as they become relevant (e.g., as they aresubmitted/posted by users). As another example and not by way oflimitation, referencing FIG. 37B, the virtual sign may be displayed onor near an interactive surface in the virtual room (e.g., the virtualsign including the “heart” reaction 3740). In particular embodiments,the virtual sign may resemble something like a jumbotron (e.g., above aninteractive surface in a virtual room) or a revolving virtual sign(e.g., with text or other notification elements revolving around in aparticular direction). The virtual sign may function like a stock tickerdisplay (e.g., with text or other notification elements scrolling acrossit). As an example and not by way of limitation, referencing FIG. 38,the virtual sign 3810 may include a scrolling display of the text“Stephanie has started watching” to indicate to users in the room that auser named “Stephanie” has started watching a live broadcast of thevirtual room. In this example, the element 3820 (which may include, forexample, a profile picture associated with the user Stephanie) mayappear to drop out of the virtual sign 3810 and into the virtual room.Similarly, in this example, other elements may also appear to drop outof the virtual sign 3810 as they become relevant (e.g., user reactionssuch as likes as they are submitted, user comments such as the comment3840). Alternatively or additionally, relevant elements may appear fromany suitable location. As an example and not by way of limitation,referencing FIG. 37A, the comment 3730 may simply appear within thevirtual room when it becomes relevant (e.g., when it is posted). Inparticular embodiments, users in the virtual room may “pick up” orotherwise interact with the elements dropping out of a virtual sign. Asan example and not by way of limitation, referencing FIG. 38, the user3830 may pick up and show a particular element (e.g., the comment 3840).

In particular embodiments, there may be a large number of relevantnotifications, in which case, the virtual reality system may determine asubset of the relevant notifications to display. This subset may bedetermined by scoring the relevant notifications based on any suitablefactors (e.g., the affinity of the users in the virtual space for theinformation conveyed by a relevant notification, the affinity of theusers in the virtual space to an author of a comment associated with arelevant notification, the affinity of the users in the virtual space toa user associated with a relevant notification, the number of reactionsthere are to a comment associated with a relevant notification), andselecting notifications having a score greater than a threshold score.

FIGS. 39A-39C illustrate an example of a user manipulating a commentelement in a virtual space. In particular embodiments, the user may beable to interact with comments, posts, reactions, or other such elements(e.g., elements related to social networks). As an example and not byway of limitation, these elements may be virtual objects that may bemanipulable such that the user may by “grab” them with a suitable input(e.g., by way of a gaze input, hand controllers) and placing themsomewhere in the virtual space. The user may also be able to grab and“throw” any of these elements away with a flicking gesture outward(which may result in the element being deleted or simply removed fromthe virtual environment). The user may also be able to hand the virtualobject to another user in the virtual space. This type of interactionmay be more intuitive to users and may simulate the real world byoffering a more tangible form of interaction means. FIGS. 39A-39Cillustrate an example sequence of events showcasing how a commentelement may be manipulated within a virtual space. Referencing FIG. 39A,a user may select the comment element 3910 using a controllercorresponding to the rendering of the user's hand 3920. Referencing FIG.39B, the user may grab or hold the comment element 3910. ReferencingFIG. 39C, the user may display (or otherwise manipulate) the commentelement 3910 within the virtual space (e.g., to show the comment element3910 to other users in the virtual space). In particular embodiments,the virtual sign described herein may be configured to releasemanipulable elements into the virtual space. As an example and not byway of limitation, the virtual sign may resemble a jumbotron device witha hole in the bottom, out of which the elements may drop (e.g., as theybecome relevant). In particular embodiments, the elements may be takenfrom a webpage on a browser application or some other content location(e.g., from a video or photo) on which content is being viewed eitherprivately, or collaboratively with others in the virtual space.

FIGS. 40A-40C illustrate an example of a user writing a message on acontent item. In particular embodiments, the virtual reality system mayallow users to alter a content item while in the virtual space and send,share, or present the altered content item to other users. As an exampleand not by way of limitation, a user may be able to add filters, changecolors, change brightness, etc. As another example and not by way oflimitation, referencing FIG. 40A, a user may be able to doodle/write themessage 4010 (e.g., the word “Hello”) or a drawing (e.g., a picture of acat) somewhere on a photo or video (e.g., which may be flat content,360-degree content, etc.). In this example, the user may use a suitablevirtual tool, such as a pen or a marker to doodle/write on the contentitem. In the case of a video, the doodle/writing may or may not betemporally limited (e.g., associated with only particular time points inthe video). In particular embodiments, the user may be able to send thealtered content item or photos/videos (flat content, 360-degree content,etc.) to specific other users, share it online (e.g., on an onlinesocial network), or present the altered content in a virtual space(e.g., in a meeting with other users in a virtual room). As an exampleand not by way of limitation, referencing FIGS. 40A-40C, the user mayselect a “Send” button in the panel 4020, and send the altered contentitem 4030 to one or more contacts (e.g., the user 4050) selected from amenu of contacts 4040. As another example and not by way of limitation,the user may share the altered content item on an online social network(e.g., referencing FIG. 40A, by selecting the “Share” button in thepanel 4020). In particular embodiments, the altering may also be donelive, with others in the virtual space watching as a user alters acontent item. In particular embodiments, users may collaborate onaltering a content item. As an example and not by way of limitation,multiple users within a virtual room may collaborate to doodle/write ona single content item (e.g., users in a business meeting maydoodle/write on a single chart or spreadsheet that is visible to thosein the virtual room).

FIG. 41 illustrates an example method 4100 for selecting a hit targetbased on a gaze input. The method may begin at step 4110, where acomputing system may receive a gaze input from a gaze-tracking inputdevice associated with a user, wherein the gaze input indicates a firstfocal point in a region of a rendered virtual space. At step 4120, thecomputing system may determine an occurrence of a trigger event. At step4130, the computing system may cause a hit target associated with thefocal point to be selected. At step 4140, the computing system may sendinformation configured to render a response to the selection of the hittarget on a display device associated with the user. Particularembodiments may repeat one or more steps of the method of FIG. 41, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 41 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 41 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for selecting ahit target based on a gaze input, including the particular steps of themethod of FIG. 41, this disclosure contemplates any suitable method forselecting a hit target based on a gaze input, including any suitablesteps, which may include all, some, or none of the steps of the methodof FIG. 41, where appropriate. Furthermore, although this disclosuredescribes and illustrates particular components, devices, or systemscarrying out particular steps of the method of FIG. 41, this disclosurecontemplates any suitable combination of any suitable components,devices, or systems carrying out any suitable steps of the method ofFIG. 41.

FIG. 42 illustrates an example method 4200 for determining a reticletype to render. The method may begin at step 4210, where a computingsystem may send information configured to render a first reticle on adisplay device, the first reticle being superimposed over a renderedvirtual space, wherein the reticle is directed at a first focal point ona region of a rendered virtual space. At step 4220, the computing systemmay receive an input configured to move the reticle from the first focalpoint to a second focal point, wherein the second focal point is withina threshold distance of a hit target that is associated with aparticular virtual object or interactive element. At step 4230, thecomputing system may select, from a plurality of reticle types, aparticular reticle type based on information associated with theparticular virtual object or interactive element. At step 4240, thecomputing system may convert the first reticle into a second reticle,the second reticle being of the particular reticle type. Particularembodiments may repeat one or more steps of the method of FIG. 42, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 42 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 42 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for determining areticle type to render, including the particular steps of the method ofFIG. 42, this disclosure contemplates any suitable method fordetermining a reticle type to render, including any suitable steps,which may include all, some, or none of the steps of the method of FIG.42, where appropriate. Furthermore, although this disclosure describesand illustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 42, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 42.

FIG. 43 illustrates an example method 4300 for determining a subset oftools to present to a user. The method may begin at step 4310, where acomputing system may receive an input indicating an intent of a firstuser to access one or more virtual tools in a rendered virtual space. Atstep 4320, the computing system may calculate a score for each of a setof virtual tools, the score being based on a current context, whereinthe current context is based on information associated with the renderedvirtual space. At step 4330, the computing system may select from theset of virtual tools, a subset of virtual tools, wherein each virtualtool in the subset of virtual tools has a score greater than a thresholdscore. At step 4340, the computing system may send informationconfigured to render the subset of virtual tools on a display deviceassociated with the first user, the subset of virtual tools beingrendered in the rendered virtual space. Particular embodiments mayrepeat one or more steps of the method of FIG. 43, where appropriate.Although this disclosure describes and illustrates particular steps ofthe method of FIG. 43 as occurring in a particular order, thisdisclosure contemplates any suitable steps of the method of FIG. 43occurring in any suitable order. Moreover, although this disclosuredescribes and illustrates an example method for determining a subset oftools to present to a user, including the particular steps of the methodof FIG. 43, this disclosure contemplates any suitable method fordetermining a subset of tools to present to a user, including anysuitable steps, which may include all, some, or none of the steps of themethod of FIG. 43, where appropriate. Furthermore, although thisdisclosure describes and illustrates particular components, devices, orsystems carrying out particular steps of the method of FIG. 43, thisdisclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 43.

FIG. 44 illustrates an example method 4400 for determining a type ofinteractive surface to render. The method may begin at step 4410, wherea computing system may send information configured to render a virtualspace on a display device associated with a first user, the virtualspace comprising a virtual room. At step 4420, the computing system mayreceive an input from a first user selecting a particular virtualobject. At step 4430, the computing system may calculate a score for aset of interactive-surface types, the score being based on a currentcontext, wherein the current context is based on information associatedwith the virtual object. At step 4440, the computing system may select,from the set of interactive-surface types, one of theinteractive-surface types based on the selected interactive-surface typehaving a score greater than a threshold score. At step 4450, thecomputing system may send information configured to render aninteractive surface that is of the selected interactive-surface type.Particular embodiments may repeat one or more steps of the method ofFIG. 44, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 44 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 44 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method fordetermining a type of interactive surface to render, including theparticular steps of the method of FIG. 44, this disclosure contemplatesany suitable method determining a type of interactive surface to render,including any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 44, where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 44, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 44.

FIG. 45 illustrates an example method 4500 for receiving inputs fromcontrollers associated with locations on the body of a user. The methodmay begin at step 4510, where a computing system may send informationconfigured to render a virtual space on a display device. At step 4520,the computing system may receive a first input from a first controllerdevice, wherein the first controller device is associated with a firstlocation on a body of a user. At step 4530, the computing system maysend information configured to render a user interface comprising a menuof items, the menu of items comprising one or more interactive elements.At step 4540, the computing system may receive a second input from asecond controller device, wherein the second controller device isassociated with a second location on the body of the user, and whereinthe second input indicates a selection of a particular interactiveelement. At step 4550, the computing system may send informationconfigured to render a response to the selection of the particularinteractive element on a display device associated with the user.Particular embodiments may repeat one or more steps of the method ofFIG. 45, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 45 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 45 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method forreceiving inputs from controllers associated with locations on the bodyof a user, including the particular steps of the method of FIG. 45, thisdisclosure contemplates any suitable method for receiving inputs fromcontrollers associated with locations on the body of a user, includingany suitable steps, which may include all, some, or none of the steps ofthe method of FIG. 45, where appropriate. Furthermore, although thisdisclosure describes and illustrates particular components, devices, orsystems carrying out particular steps of the method of FIG. 45, thisdisclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 45.

FIG. 46 illustrates an example method 4600 for initiating a virtualmeeting. The method may begin at step 4610, where a computing system maysend information configured to render a virtual space on a displaydevice. At step 4620, the computing system may receive a first user toinitiate a meeting with a second user. At step 4630, the computingsystem sends a notification to the second user regarding the request. Atstep 4640, the computing system may receive a response from the seconduser, the response indicating an acceptance of the request. At step4650, the computing system may send information to render arepresentation of the second user in the virtual space. Particularembodiments may repeat one or more steps of the method of FIG. 46, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 46 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 46 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for initiating avirtual meeting, including the particular steps of the method of FIG.46, this disclosure contemplates any suitable method for initiating avirtual meeting, including any suitable steps, which may include all,some, or none of the steps of the method of FIG. 46, where appropriate.Furthermore, although this disclosure describes and illustratesparticular components, devices, or systems carrying out particular stepsof the method of FIG. 46, this disclosure contemplates any suitablecombination of any suitable components, devices, or systems carrying outany suitable steps of the method of FIG. 46.

FIG. 47 illustrates an example method 4700 for receiving notificationson a virtual device. The method may begin at step 4710, where acomputing system may send information configured to render a virtualspace on a display device, the virtual space comprising a virtualrepresentation of a first body part of a first user. At step 4720, thecomputing system may send information configured to render a firstvirtual device that is associated with the representation of the firstbody part, the first virtual device comprising a display region. At step4730, the computing system may receive a notification item associatedwith the first user. At step 4740, the computing system may sendinformation configured to render a representation of the notificationitem in the display region of the first virtual device. Particularembodiments may repeat one or more steps of the method of FIG. 47, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 47 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 47 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for receivingnotifications on a virtual device, including the particular steps of themethod of FIG. 47, this disclosure contemplates any suitable method forreceiving notifications on a virtual device, including any suitablesteps, which may include all, some, or none of the steps of the methodof FIG. 47, where appropriate. Furthermore, although this disclosuredescribes and illustrates particular components, devices, or systemscarrying out particular steps of the method of FIG. 47, this disclosurecontemplates any suitable combination of any suitable components,devices, or systems carrying out any suitable steps of the method ofFIG. 47.

FIG. 48 illustrates an example method 4800 for rendering a unified360-degree perspective having two portions. The method may begin at step4810, where a computing system may receive first visual informationassociated with at least a portion of a 360-degree perspective. At step4820, the computing system may determine that the first visualinformation is not sufficient to render a complete 360-degreeperspective on a display device associated with the first user. At step4830, the computing system may retrieve second visual information. Atstep 4840, the computing system may send information configured torender a unified 360-degree perspective on the display device, wherein:a first portion of the unified 360-degree perspective is based on thefirst visual information; and a second portion of the unified 360-degreeperspective is based on the second visual information. Particularembodiments may repeat one or more steps of the method of FIG. 48, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 48 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 48 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for rendering aunified 360-degree perspective having two portions, including theparticular steps of the method of FIG. 48, this disclosure contemplatesany suitable method for rendering a unified 360-degree perspectivehaving two portions, including any suitable steps, which may includeall, some, or none of the steps of the method of FIG. 48, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 48, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 48.

FIG. 49 illustrates an example method 4900 for displayingsocial-commentary items in respective associated locations in a virtualspace. The method may begin at step 4910, where a computing system maysend information configured to render a first view of a virtual space ona display device associated with a user, wherein the virtual space has afirst location associated with a first social-commentary item and asecond location associated with a second social-commentary item, whereinthe first location is within the first view and the second location isoutside the first view. At step 4920, the computing system may sendinformation configured to render a first user-interface elementcomprising a representation of the first social-commentary item and asecond user-interface element indicating a presence of the secondsocial-commentary item. At step 4930, the computing system may receivean input from the user comprising a request to change the first view toa second view of the virtual space. At step 4940, the computing systemmay send information configured to render the second view of the virtualspace and a representation of the second social-commentary item withinthe second view. Particular embodiments may repeat one or more steps ofthe method of FIG. 49, where appropriate. Although this disclosuredescribes and illustrates particular steps of the method of FIG. 49 asoccurring in a particular order, this disclosure contemplates anysuitable steps of the method of FIG. 49 occurring in any suitable order.Moreover, although this disclosure describes and illustrates an examplemethod for displaying social-commentary items in respective associatedlocations in a virtual space, including the particular steps of themethod of FIG. 49, this disclosure contemplates any suitable methoddisplaying social-commentary items in respective associated locations ina virtual space, including any suitable steps, which may include all,some, or none of the steps of the method of FIG. 49, where appropriate.Furthermore, although this disclosure describes and illustratesparticular components, devices, or systems carrying out particular stepsof the method of FIG. 49, this disclosure contemplates any suitablecombination of any suitable components, devices, or systems carrying outany suitable steps of the method of FIG. 49.

FIG. 50 illustrates an example method 5000 for displaying notificationson a virtual sign. The method may begin at step S010, where a computingsystem may send information configured to render a virtual space on adisplay device associated with a first user, wherein the virtual spacecomprises a virtual room. At step S020, the computing system may receiveone or more notifications associated with the virtual room. At stepS030, the computing system may calculate, for each of the one or morenotifications, a score based on an affinity of the first user forinformation conveyed by the notification. At step S040, the computingsystem may select a particular notification based on the particularnotification having a score greater than a threshold score. At stepS050, the computing system may send information configured to render arepresentation of the particular notification on a virtual sign in thevirtual room. Particular embodiments may repeat one or more steps of themethod of FIG. 50, where appropriate. Although this disclosure describesand illustrates particular steps of the method of FIG. 50 as occurringin a particular order, this disclosure contemplates any suitable stepsof the method of FIG. 50 occurring in any suitable order. Moreover,although this disclosure describes and illustrates an example method fordisplaying notifications on a virtual sign, including the particularsteps of the method of FIG. 50, this disclosure contemplates anysuitable method for displaying notifications on a virtual sign,including any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 50, where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 50, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 50.

FIG. 51 illustrates an example method 5100 for rendering a manipulablevirtual object representing a social-commentary item. The method maybegin at step S110, where a computing system may send informationconfigured to render a virtual space on a display device associated witha first user. At step S120, the computing system may send informationconfigured to render a social-commentary item in the virtual space,wherein the social-commentary item is rendered within a region of thevirtual space, the region displaying an interface of an online socialnetwork. At step S130, the computing system may receive a grab inputfrom an input device of the first user, wherein the grab input isassociated with the social-commentary item. At step S140, the computingsystem may send information configured to render a virtual objectrepresenting the social-commentary item, wherein the virtual object ismanipulable by the first user. Particular embodiments may repeat one ormore steps of the method of FIG. 51, where appropriate. Although thisdisclosure describes and illustrates particular steps of the method ofFIG. 51 as occurring in a particular order, this disclosure contemplatesany suitable steps of the method of FIG. 51 occurring in any suitableorder. Moreover, although this disclosure describes and illustrates anexample method for rendering a manipulable virtual object representing asocial-commentary item, including the particular steps of the method ofFIG. 51, this disclosure contemplates any suitable method for renderinga manipulable virtual object representing a social-commentary item,including any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 51, where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 51, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 51.

FIG. 52 illustrates an example method 5200 for presenting an aerial viewof a virtual space and re-positioning a user within the virtual space.The method may begin at step S210, where a computing system may sendinformation configured to render a ground-level view of a virtual spaceon a display device associated with a first user, wherein the virtualspace comprises a representation of the first user at a first spotcorresponding to a first location in the virtual space, and wherein thevirtual space further comprises a second spot corresponding to a secondlocation in the virtual space. At step S220, the computing system mayreceive an input from the first user to summon an aerial view of thevirtual space. At step S230, the computing system may send informationconfigured to render the aerial view, the aerial view comprising anindication of the first spot and an indication of the second spot. Atstep S240, the computing system may receive an input from the first userselecting the second spot. At step S250, the computing system may sendinformation configured to render the representation of the first user atthe second spot in the ground-level view of the virtual space.Particular embodiments may repeat one or more steps of the method ofFIG. 52, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 52 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 52 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method forpresenting an aerial view of a virtual space and re-positioning a userwithin the virtual space, including the particular steps of the methodof FIG. 52, this disclosure contemplates any suitable method forpresenting an aerial view of a virtual space and re-positioning a userwithin the virtual space, including any suitable steps, which mayinclude all, some, or none of the steps of the method of FIG. 52, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 52, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 52.

FIG. 53 illustrates an example method 5300 for pausing a virtualexperience. The method may begin at step S310, where a computing systemmay send information configured to render a virtual space on a displaydevice associated with a first user, wherein the virtual space providesa virtual experience to the first user. At step S320, the computingsystem may receive a pause input from the first user to enter a pausemode. At step S330, the computing system may cause the first user toenter the pause mode, wherein the virtual experience within the virtualspace is paused for the first user. Particular embodiments may repeatone or more steps of the method of FIG. 53, where appropriate. Althoughthis disclosure describes and illustrates particular steps of the methodof FIG. 53 as occurring in a particular order, this disclosurecontemplates any suitable steps of the method of FIG. 53 occurring inany suitable order. Moreover, although this disclosure describes andillustrates an example method for pausing a virtual experience,including the particular steps of the method of FIG. 53, this disclosurecontemplates any suitable method for pausing a virtual experience,including any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 53, where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 53, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 53.

FIG. 54 illustrates an example method 5400 for customizing a virtualrepresentation of a user. The method may begin at step S410, where acomputing system may send information configured to render a virtualroom on a display device associated with a user, wherein the virtualroom comprises a visual representation of the user and a virtual mirrorthat displays a virtual reflection of the visual representation of theuser. At step S420, the computing system may receive a first input fromthe user selecting a visible feature on the visual representation of theuser. At step S430, the computing system may present one or morealternative options to the user, each of the alternative optionscorresponding to a variation of the selected visible feature. At stepS440, the computing system may receive a second input from the userselecting a particular alternative option corresponding to a particularvariation of the selected visible feature. At step S450, the computingsystem may cause the visual representation of the user to be modifiedsuch that the particular variation of the selected visible feature isimplemented. Particular embodiments may repeat one or more steps of themethod of FIG. 54, where appropriate. Although this disclosure describesand illustrates particular steps of the method of FIG. 54 as occurringin a particular order, this disclosure contemplates any suitable stepsof the method of FIG. 54 occurring in any suitable order. Moreover,although this disclosure describes and illustrates an example method forcustomizing a virtual representation of a user, including the particularsteps of the method of FIG. 54, this disclosure contemplates anysuitable method for customizing a virtual representation of a user,including any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 54, where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 54, this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 54.

FIG. 55 illustrates an example method 5500 for altering and sharingvirtual content. The method may begin at step S510, where a computingsystem may send information configured to render a virtual room on adisplay device associated with a user, wherein the virtual roomcomprises a representation of the first user. At step S520, thecomputing system may receive an input from the first user selecting acontent item. At step S530, the computing system may send informationconfigured to render the content item as a virtual object in the virtualspace. At step S540, the computing system may receive a modificationinput from the first user to modify the content item. At step S550, thecomputing system may cause the content item to be modified. At stepS560, the computing system may receive a share input from the first userto share the modified content item on an online content-sharing network.At step S570, the computing system may cause the modified content itemto be shared on the online content-sharing network. Particularembodiments may repeat one or more steps of the method of FIG. 55, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 55 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 55 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for altering andsharing virtual content, including the particular steps of the method ofFIG. 55, this disclosure contemplates any suitable method for alteringand sharing virtual content, including any suitable steps, which mayinclude all, some, or none of the steps of the method of FIG. 55, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 55, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 55.

FIG. 56 illustrates an example computer system 5600. In particularembodiments, one or more computer systems 5600 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 5600 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 5600 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 5600.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems5600. This disclosure contemplates computer system 5600 taking anysuitable physical form. As example and not by way of limitation,computer system 5600 may be an embedded computer system, asystem-on-chip (SOC), a single-board computer system (SBC) (such as, forexample, a computer-on-module (COM) or system-on-module (SOM)), adesktop computer system, a laptop or notebook computer system, aninteractive kiosk, a mainframe, a mesh of computer systems, a mobiletelephone, a personal digital assistant (PDA), a server, a tabletcomputer system, an augmented/virtual reality device, or a combinationof two or more of these. Where appropriate, computer system 5600 mayinclude one or more computer systems 5600; be unitary or distributed;span multiple locations; span multiple machines; span multiple datacenters; or reside in a cloud, which may include one or more cloudcomponents in one or more networks. Where appropriate, one or morecomputer systems 5600 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 5600 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 5600 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 5600 includes a processor5602, memory 5604, storage 5606, an input/output (I/O) interface 5608, acommunication interface 5610, and a bus 5612. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 5602 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions,processor 5602 may retrieve (or fetch) the instructions from an internalregister, an internal cache, memory 5604, or storage 5606; decode andexecute them; and then write one or more results to an internalregister, an internal cache, memory 5604, or storage 5606. In particularembodiments, processor 5602 may include one or more internal caches fordata, instructions, or addresses. This disclosure contemplates processor5602 including any suitable number of any suitable internal caches,where appropriate. As an example and not by way of limitation, processor5602 may include one or more instruction caches, one or more datacaches, and one or more translation lookaside buffers (TLBs).Instructions in the instruction caches may be copies of instructions inmemory 5604 or storage 5606, and the instruction caches may speed upretrieval of those instructions by processor 5602. Data in the datacaches may be copies of data in memory 5604 or storage 5606 forinstructions executing at processor 5602 to operate on; the results ofprevious instructions executed at processor 5602 for access bysubsequent instructions executing at processor 5602 or for writing tomemory 5604 or storage 5606; or other suitable data. The data caches mayspeed up read or write operations by processor 5602. The TLBs may speedup virtual-address translation for processor 5602. In particularembodiments, processor 5602 may include one or more internal registersfor data, instructions, or addresses. This disclosure contemplatesprocessor 5602 including any suitable number of any suitable internalregisters, where appropriate. Where appropriate, processor 5602 mayinclude one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 5602. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 5604 includes main memory for storinginstructions for processor 5602 to execute or data for processor 5602 tooperate on. As an example and not by way of limitation, computer system5600 may load instructions from storage 5606 or another source (such as,for example, another computer system 5600) to memory 5604. Processor5602 may then load the instructions from memory 5604 to an internalregister or internal cache. To execute the instructions, processor 5602may retrieve the instructions from the internal register or internalcache and decode them. During or after execution of the instructions,processor 5602 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor5602 may then write one or more of those results to memory 5604. Inparticular embodiments, processor 5602 executes only instructions in oneor more internal registers or internal caches or in memory 5604 (asopposed to storage 5606 or elsewhere) and operates only on data in oneor more internal registers or internal caches or in memory 5604 (asopposed to storage 5606 or elsewhere). One or more memory buses (whichmay each include an address bus and a data bus) may couple processor5602 to memory 5604. Bus 5612 may include one or more memory buses, asdescribed below. In particular embodiments, one or more memorymanagement units (MMUs) reside between processor 5602 and memory 5604and facilitate accesses to memory 5604 requested by processor 5602. Inparticular embodiments, memory 5604 includes random access memory (RAM).This RAM may be volatile memory, where appropriate Where appropriate,this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 5604 may include one ormore memories 5604, where appropriate. Although this disclosuredescribes and illustrates particular memory, this disclosurecontemplates any suitable memory.

In particular embodiments, storage 5606 includes mass storage for dataor instructions. As an example and not by way of limitation, storage5606 may include a hard disk drive (HDD), a floppy disk drive, flashmemory, an optical disc, a magneto-optical disc, magnetic tape, or aUniversal Serial Bus (USB) drive or a combination of two or more ofthese. Storage 5606 may include removable or non-removable (or fixed)media, where appropriate. Storage 5606 may be internal or external tocomputer system 5600, where appropriate. In particular embodiments,storage 5606 is non-volatile, solid-state memory. In particularembodiments, storage 5606 includes read-only memory (ROM). Whereappropriate, this ROM may be mask-programmed ROM, programmable ROM(PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM),electrically alterable ROM (EAROM), or flash memory or a combination oftwo or more of these. This disclosure contemplates mass storage 5606taking any suitable physical form. Storage 5606 may include one or morestorage control units facilitating communication between processor 5602and storage 5606, where appropriate. Where appropriate, storage 5606 mayinclude one or more storages 5606. Although this disclosure describesand illustrates particular storage, this disclosure contemplates anysuitable storage.

In particular embodiments, I/O interface 5608 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 5600 and one or more I/O devices. Computersystem 5600 may include one or more of these I/O devices, whereappropriate. One or more of these I/O devices may enable communicationbetween a person and computer system 5600. As an example and not by wayof limitation, an I/O device may include a keyboard, keypad, microphone,monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet,touch screen, trackball, video camera, another suitable I/O device or acombination of two or more of these. An I/O device may include one ormore sensors. This disclosure contemplates any suitable I/O devices andany suitable I/O interfaces 5608 for them. Where appropriate, I/Ointerface 5608 may include one or more device or software driversenabling processor 5602 to drive one or more of these I/O devices. I/Ointerface 5608 may include one or more I/O interfaces 5608, whereappropriate. Although this disclosure describes and illustrates aparticular I/O interface, this disclosure contemplates any suitable I/Ointerface.

In particular embodiments, communication interface 5610 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 5600 and one or more other computer systems 5600 or oneor more networks. As an example and not by way of limitation,communication interface 5610 may include a network interface controller(NIC) or network adapter for communicating with an Ethernet or otherwire-based network or a wireless NIC (WNIC) or wireless adapter forcommunicating with a wireless network, such as a WI-FI network. Thisdisclosure contemplates any suitable network and any suitablecommunication interface 5610 for it. As an example and not by way oflimitation, computer system 5600 may communicate with an ad hoc network,a personal area network (PAN), a local area network (LAN), a wide areanetwork (WAN), a metropolitan area network (MAN), or one or moreportions of the Internet or a combination of two or more of these. Oneor more portions of one or more of these networks may be wired orwireless. As an example, computer system 5600 may communicate with awireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orother suitable wireless network or a combination of two or more ofthese. Computer system 5600 may include any suitable communicationinterface 5610 for any of these networks, where appropriate.Communication interface 5610 may include one or more communicationinterfaces 5610, where appropriate. Although this disclosure describesand illustrates a particular communication interface, this disclosurecontemplates any suitable communication interface.

In particular embodiments, bus 5612 includes hardware, software, or bothcoupling components of computer system 5600 to each other. As an exampleand not by way of limitation, bus 5612 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 5612may include one or more buses 5612, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A method comprising, by a computing system:receiving an input indicating an intent of a first user to access one ormore virtual tools in a rendered virtual space; calculating a score foreach of a set of virtual tools, the score being based on a currentcontext, wherein the current context is based on information associatedwith the rendered virtual space; selecting, from the set of virtualtools, a subset of virtual tools, wherein each virtual tool in thesubset of virtual tools has a score greater than a threshold score; andsending, information configured to render the subset of virtual tools ona display device associated with the first user, the subset of virtualtools being rendered in the rendered virtual space.
 2. The method ofclaim 1, wherein the virtual space is a virtual room, and whereininformation associated with the rendered virtual space comprisesinformation associated with the virtual room.
 3. The method of claim 1,further comprising: determining the set of virtual tools based oninformation associated with the first user, wherein the informationassociated with the user comprises account information associated withthe first user that specifies whether the first user has access to eachof the virtual tools in the set of virtual tools.
 4. The method of claim1, wherein the score is further based on information associated with thefirst user.
 5. The method of claim 1, further comprising: accessing asocial graph comprising a plurality of nodes and a plurality of edgesconnecting the nodes, each of the edges between two of the nodesrepresenting a single degree of separation between them, the nodescomprising: a first node corresponding to a first user associated withthe display device; and a plurality of second nodes corresponding to aplurality of concepts or second users associated with an online socialnetwork, respectively; and wherein the score is further based oninformation associated with the first node.
 6. The method of claim 5,wherein the score is further based on information associated with asubset of the plurality of second nodes, the subset of the plurality ofsecond nodes corresponding to second users who are first-degreeconnections of the first user.
 7. The method of claim 1, wherein thescore is further based on contextual information associated with anenvironment external to the virtual space.
 8. The method of claim 7,wherein the contextual information associated with the environment isbased on a current time of day or a current date.
 9. The method of claim7, wherein the contextual information associated with the environment isbased on a current or future event as determined based on a calendarassociated with a user of the display device.
 10. The method of claim 7,wherein the contextual information associated with the environment isbased on currently trending topics.
 11. The method of claim 1, whereinthe score is further based on a voice command input submitted by a userof the display device.
 12. The method of claim 1, further comprising:receiving a selection input the selection input indicating an intent ofthe first user to select a particular virtual tool from the subset ofvirtual tools; enabling the first user to interact with the particularvirtual tool in the rendered virtual space; receiving a subsequent inputfrom first user to transfer the particular virtual tool to a second userin the rendered virtual space; and enabling the second user to interactwith the particular virtual tool in the rendered virtual space.
 13. Themethod of claim 1, wherein the subset of virtual tools is renderedwithin a virtual drawer of a virtual interactive surface in the renderedvirtual space.
 14. The method of claim 1, wherein the subset of virtualtools is rendered in a region of the virtual space associated with avirtual representation of the first user, wherein the location of theregion is based on the location of a portion of the virtualrepresentation of the first user.
 15. The method of claim 1, wherein thesubset of virtual tools comprises a camera tool that is able to takeselfie images or video of a virtual representation of the first user,wherein the first user is able to manipulate the camera tool to capturea desired perspective.
 16. The method of claim 1, wherein the subset ofvirtual tools comprises a build tool that enables the first user tocreate custom virtual objects in the rendered virtual space.
 17. Themethod of claim 1, wherein the subset of virtual tools comprises acommenting tool that enables the first user to insert commentary intothe rendered virtual space, wherein the comment tool is anaudio-commenting tool, an image-commenting tool, a text-commenting tool,or a reaction-commenting tool.
 18. The method of claim 1, wherein thecomputing system comprises a remote server.
 19. One or morecomputer-readable non-transitory storage media embodying software thatis operable when executed to: receive an input indicating an intent of afirst user to access one or more virtual tools in a rendered virtualspace; calculate a score for each of a set of virtual tools, the scorebeing based on a current context, wherein the current context is basedon information associated with the rendered virtual space; select, fromthe set of virtual tools, a subset of virtual tools, wherein eachvirtual tool in the subset of virtual tools has a score greater than athreshold score; and send, information configured to render the subsetof virtual tools on a display device associated with the first user, thesubset of virtual tools being rendered in the rendered virtual space.20. A system comprising: one or more processors; and a non-transitorymemory coupled to the processors comprising instructions executable bythe processors, the processors operable when executing the instructionsto: receive an input indicating an intent of a first user to access oneor more virtual tools in a rendered virtual space; calculate a score foreach of a set of virtual tools, the score being based on a currentcontext, wherein the current context is based on information associatedwith the rendered virtual space; select, from the set of virtual tools,a subset of virtual tools, wherein each virtual tool in the subset ofvirtual tools has a score greater than a threshold score; and send,information configured to render the subset of virtual tools on adisplay device associated with the first user, the subset of virtualtools being rendered in the rendered virtual space.